Wikipiideɛ
dgawiki
https://dga.wikipedia.org/wiki/A_Gamp%C9%9Bl%C9%9B_zu
MediaWiki 1.47.0-wmf.12
first-letter
Duoro bimbu zie
Be o yoŋ
Yeli
Toma daana
Toma daana yeli
Wikipedia
Wikipedia yeli
Duoro kɔre
Duoro kɔre yeli
MediaWiki
MediaWiki yeli
Tɛmpileti
Tɛmpileti yeli
Sombo
Sombo yeli
Gbuli
Gbuli yeli
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Ghana
0
687
62874
62636
2026-07-23T12:07:11Z
Yere Titus
1839
Laŋ
62874
wikitext
text/x-wiki
{{Databox|item=Q117}}
[[Ghana|A Gaana poɔ]] la a [[West Africa]] tenne poɔ. Onaŋ la da faa omeŋa yi a nempeɛle nuuriŋ a [[Africa|Afrika]] zaa 6th March 1957 poɔ. O taa la origyin pie ane ayoɔbo. Ka o teŋkpoŋ e [[Àkàrà|AŋKara]]. [[Ashanti Region|Kɔmbɔnne]], [[Ewe]], Ga, Dagombare, [[Dagaaba]], la a nempaarɛɛ mine naŋ kpeɛrɛ a teŋɛ ŋa poɔ. Paaloŋ bɛrɛ mine ne Gaana naŋ laŋ torebogo la [[Burkina Faso]], [[Togo]], [[Cote d'Ivore]] a paa de a mane kpoŋ naŋ gɔlle a teŋa ziiri mine .<ref>https://www.britannica.com/place/Ghana</ref>
== '''Gaana irigyini aneŋ a Teŋkpoŋni''' ==
# [[Ahafo Region]] Goaso
# [[Ashanti Region]] Kumasi
# [[Bono East Region]] Techiman
# [[Bono Region]] Sunyani
# [[Central Region]] Cape Coast
# [[Eastern Region]] Koforidua
# [[Greater Accra Region]] Accra
# [[North East Region]] Nalerigu
# [[Northern Region]] [[Tamale]]
# [[Oti Region]] Dambai
# [[Savannah Region]] Damango
# [[Upper East Region]] [[Bolgatanga]]
# [[Upper West Region]] [[Wa]]
# [[Volta Region]] [[Ho]]
# [[Western North Region]] Sefwi Wiawso
# [[Western Region]] [[Sekondi-Takoradi]]
== '''Gaana kɔkɔɛ Mine''' ==
[[Bɔrifɔ]]
Twi
[[Dagaare]]
[[Fante]]
Ewe
[[Dagbani]]
Ga-Adangbe
[[Frafra]]
== Sommo Yizie ==
gc3wt1795sim4vc501om7nsrnbeagrr
Module:Params
828
4820
62880
62615
2026-07-23T13:29:43Z
Grufo
1773
Update from [[d:Special:GoToLinkedPage/mediawikiwiki/Q122696746|master]] using [[mw:Synchronizer| #Synchronizer]]
62880
Scribunto
text/plain
require[[strict]]
--- ---
--- PRIVATE ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Abstract utilities ]]--
----------------------------
-- Helper function for `string.gsub()` (for managing zero-padded numbers)
local function zero_padded (str)
return ('%03d%s'):format(#str, str)
end
-- Helper function for `table.sort()` (for natural sorting)
local function natural_sort (var1, var2)
return var1:gsub('%d+', zero_padded) < var2:gsub('%d+', zero_padded)
end
-- Return a copy or a reference to a table
local function copy_or_ref_table (src, refonly)
if refonly then return src end
local newtab = {}
for key, val in pairs(src) do newtab[key] = val end
return newtab
end
-- Copy at most N items (of all kinds) from `src` to `dest` and return `dest`
local function copy_table_maxn (dest, src, len)
local idx = 1
for key, val in pairs(src) do
dest[key], idx = val, idx + 1
if idx > len then break end
end
return dest
end
-- Remove some numeric elements from a table, shifting everything to the left
local function remove_numeric_keys (tbl, idx, len)
local cache, tmp = {}, idx + len - 1
for key, val in pairs(tbl) do
if type(key) == 'number' and key >= idx then
if key > tmp then cache[key - len] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
-- Make a reduced copy of a table (shifting in both directions if necessary)
local function copy_table_reduced (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
elseif key > tmp then ret[key - len] = val end
end
elseif tmp > 0 then
local nshift = 1 - idx
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > tmp then ret[key - tmp] = val
elseif key < idx then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
elseif key < idx then ret[key + len] = val end
end
end
return ret
end
-- Make an expanded copy of a table (shifting in both directions if necessary)
local function copy_table_expanded (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
else ret[key + len] = val end
end
elseif tmp > 0 then
local nshift = idx - 1
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > 0 then ret[key + tmp] = val
elseif key < 1 then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
else ret[key - len] = val end
end
end
return ret
end
-- Given a table, create two new tables containing the sorted list of keys
local function get_key_list_sorted (tbl, sort_fn)
local nums, words, nn, nw = {}, {}, 0, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
nn = nn + 1
nums[nn] = key
else
nw = nw + 1
words[nw] = key
end
end
table.sort(nums)
table.sort(words, sort_fn)
return nums, words, nn, nw
end
-- Parse a parameter name string and return it as a string or a number
local function get_parameter_name (par_str)
local ret = par_str:match'^%s*(.-)%s*$'
if ret ~= '0' and ret:find'^%-?[1-9]%d*$' == nil then return ret end
return tonumber(ret)
end
-- Move a key from a table to another, but only if under a different name and
-- always parsing numeric strings as numbers
local function steal_if_renamed (val, src, skey, dest, dkey)
local realkey = get_parameter_name(dkey)
if skey ~= realkey then dest[realkey], src[skey] = val, nil end
end
--[[ Public strings ]]--
------------------------
-- Special match keywords (functions and modifiers MUST avoid these names)
local mkeywords = {
['or'] = 0,
pattern = 1,
plain = 2,
strict = 3
}
-- Sort functions (functions and modifiers MUST avoid these names)
local sortfunctions = {
alphabetically = false,
naturally = natural_sort
}
-- Callback styles for the `mapping_*` and `renaming_*` class of modifiers
-- (functions and modifiers MUST avoid these names)
--[[
Meanings of the columns:
col[1] = Loop type (0-3)
col[2] = Number of module arguments that the style requires (1-3)
col[3] = Minimum number of sequential parameters passed to the callback
col[4] = Name of the callback parameter where to place each parameter name
col[5] = Name of the callback parameter where to place each parameter value
col[6] = Argument in the modifier's invocation that will override `col[4]`
col[7] = Argument in the modifier's invocation that will override `col[5]`
A value of `-1` indicates that no meaningful value is stored (i.e. `nil`)
]]--
local mapping_styles = {
names_and_values = { 3, 2, 2, 1, 2, -1, -1 },
values_and_names = { 3, 2, 2, 2, 1, -1, -1 },
values_only = { 1, 2, 1, -1, 1, -1, -1 },
names_only = { 2, 2, 1, 1, -1, -1, -1 },
names_and_values_as = { 3, 4, 0, -1, -1, 2, 3 },
names_only_as = { 2, 3, 0, -1, -1, 2, -1 },
values_only_as = { 1, 3, 0, -1, -1, -1, 2 },
blindly = { 0, 2, 0, -1, -1, -1, -1 }
}
-- Memory slots (functions and modifiers MUST avoid these names)
local memoryslots = {
h = 'header',
f = 'footer',
i = 'itersep',
l = 'lastsep',
n = 'ifngiven',
p = 'pairsep',
s = 'oxfordsep'
}
-- Possible trimming modes for the `parsing` modifier
local trim_parse_opts = {
trim_none = { false, false },
trim_positional = { false, true },
trim_named = { true, false },
trim_all = { true, true }
}
-- Possible string modes for the iteration separator in the `parsing` and
-- `reinterpreting` modifiers
local isep_parse_opts = {
splitter_pattern = false,
splitter_string = true
}
-- Possible string modes for the key-value separator in the `parsing` and
-- `reinterpreting` modifiers
local psep_parse_opts = {
setter_pattern = false,
setter_string = true
}
-- Possible position references for the `splicing` modifier
local position_references = {
add_nothing = 0,
add_smallest_number = 1,
add_last_of_sequence = 2,
add_largest_number = 3
}
-- Possible modes for the `reassigning` modifier
local a_modes = {
transfer = 0,
clone = 1,
rename = 2,
copy = 3,
sacrifice = 4,
provide = 5,
spare = 7
}
-- Functions and modifiers MUST avoid these names too: `here`, `in_substack`,
-- `let`, `expose`, `use`, `with_flushed_glue`, `without_flushed_glue`
-- `without_sorting`
--[[ Private constants ]]--
---------------------------
-- Hard-coded name of the module (to avoid going through `frame:getTitle()`)
local modulename = 'Module:Params'
-- The functions listed here declare that they don't need the `frame.args`
-- metatable to be copied into a regular table; if they are modifiers they also
-- guarantee that they will make their own (modified) copy available
local refpipe = {
call_for_each_group = true,
--coins = true,
count = true,
evaluating = true,
for_each = true,
list = true,
list_values = true,
list_maybe_with_names = true,
value_of = true
}
-- The functions listed here declare that they don't need the
-- `frame:getParent().args` metatable to be copied into a regular table; if
-- they are modifiers they also guarantee that they will make their own
-- (modified) copy available
local refparams = {
call_for_each_group = true,
combining = true,
combining_by_calling = true,
combining_values = true,
concat_and_call = true,
concat_and_invoke = true,
concat_and_magic = true,
count = true,
grouping_by_calling = true,
mixing_names_and_values = true,
keeping_at_most = true,
renaming_by_mixing = true,
renaming_to_sequence = true,
renaming_to_uppercase = true,
renaming_to_lowercase = true,
--renaming_to_values = true,
shifting = true,
splicing = true,
--swapping_names_and_values = true,
value_of = true,
with_name_matching = true
}
-- Maximum number of numeric parameters that can be filled, if missing (we
-- chose an arbitrary number for this constant; you can discuss about its
-- optimal value at Module talk:Params)
local maxfill = 1024
-- The private table of functions
local library = {}
-- Functions and modifiers that can only be invoked in first position
local static_iface = {}
--[[ Private functions ]]--
---------------------------
-- Create a new context
local function context_new (child_frame)
local main_frame = child_frame:getParent()
return {
frame = main_frame,
opipe = child_frame.args,
oparams = main_frame.args,
firstposonly = static_iface,
iterfunc = pairs,
sorttype = 0,
n_parents = 0,
n_children = 0,
n_available = maxfill
}
end
-- Move to the next action within the user-given list
local function context_iterate (ctx, n_forward)
local nextfn
if ctx.pipe[n_forward] ~= nil then
nextfn = ctx.pipe[n_forward]:match'^%s*(.*%S)'
end
if nextfn == nil then error(modulename ..
': You must specify a function to call', 0) end
if library[nextfn] == nil then
if ctx.firstposonly[nextfn] == nil then error(modulename ..
': The function ‘' .. nextfn .. '’ does not exist', 0)
else error(modulename .. ': The ‘' .. nextfn ..
'’ directive can only appear in first position', 0)
end
end
remove_numeric_keys(ctx.pipe, 1, n_forward)
return library[nextfn]
end
-- Main loop
local function main_loop (ctx, start_with)
local fn = start_with
repeat fn = fn(ctx) until not fn
if ctx.n_parents > 0 then error(modulename ..
': One or more ‘merging_substack’ directives are missing', 0) end
if ctx.n_children > 0 then error(modulename ..
', For some of the snapshots either the ‘flushing’ directive is missing or a group has not been properly closed with ‘merging_substack’', 0) end
end
-- Load a `setting`-like directive string into the `dest` table
local function set_strings_from_opts (dest, opts, start_from)
local cmd
if opts[start_from] == nil then return start_from - 1 end
cmd = opts[start_from]:gsub('%s+', ''):gsub('/+', '/')
:match'^/*(.*[^/])'
if cmd == nil then return start_from end
local vname, chr
local amap, sep, argc = {}, string.byte('/'), start_from + 1
for idx = 1, #cmd do
chr = cmd:byte(idx)
if chr == sep then
for key, val in ipairs(amap) do
dest[val], amap[key] = opts[argc], nil
end
argc = argc + 1
else
vname = memoryslots[string.char(chr)]
if vname == nil then error(modulename ..
', ‘setting’: Unknown slot ‘' ..
string.char(chr) .. '’', 0) end
table.insert(amap, vname)
end
end
for key, val in ipairs(amap) do dest[val] = opts[argc] end
return argc
end
-- Add a new stack of parameters to `ctx.children`
local function new_substack (ctx)
local currsnap, newparams = ctx.n_children + 1, {}
if ctx.children == nil then ctx.children = { newparams }
else ctx.children[currsnap] = newparams end
ctx.n_children = currsnap
return newparams
end
-- Parse a raw argument containing a `sortfunctions` directive, or
-- `'without_sorting'`, or `nil`
local function load_sort_opt (raw_arg)
if raw_arg == nil then return nil, 1, false end
local trarg = raw_arg:match'^%s*(.-)%s*$'
if trarg == 'without_sorting' then return nil, 2, false, trarg end
local tmp = sortfunctions[trarg]
if tmp == nil then return nil, 1, false, trarg end
return tmp or nil, 2, true, trarg
end
-- Parse optional user arguments of type `...|[let/use]|[...]|[let/use]|[...]|
-- [number of additional parameters]|[parameter 1]|[parameter 2]|[...]`
local function load_child_opts (src, start_from, append_after, params)
local tnamed, tmp1, tmp2
local pin, tbl, mem = start_from, {}, {}
while src[pin] ~= nil and src[pin + 1] ~= nil do
tmp1 = src[pin]:match'^%s*(.*%S)'
if tmp1 == 'let' and src[pin + 2] ~= nil then
tmp1 = get_parameter_name(src[pin + 1])
mem[tmp1], tbl[tmp1], pin = nil, src[pin + 2], pin + 3
--[[
elseif tmp1 == 'expose' then
tmp1 = get_parameter_name(src[pin + 1])
tmp2 = params[tmp1]
mem[tmp1], tbl[tmp1], pin = tmp2, tmp2, pin + 2
]]--
elseif tmp1 == 'use' and src[pin + 2] ~= nil then
tmp1 = get_parameter_name(src[pin + 2])
tmp2 = params[tmp1]
mem[tmp1], tbl[get_parameter_name(src[pin + 1])], pin =
tmp2, tmp2, pin + 3
else break end
end
local tnew = copy_or_ref_table(params, next(mem) == nil)
for key in pairs(mem) do tnew[key] = nil end
if pin ~= start_from then tnamed, tbl = tbl, {} end
tmp1 = tonumber(src[pin])
if tmp1 ~= nil and math.floor(tmp1) == tmp1 then
if tmp1 < 0 then tmp1 = -1 end
tmp2 = append_after - pin
for idx = pin + 1, pin + tmp1 do tbl[idx + tmp2] = src[idx] end
pin = pin + tmp1 + 1
end
if tnamed ~= nil then
for key, val in pairs(tnamed) do tbl[key] = val end
end
return tbl, pin, tnew, mem
end
-- Load the optional arguments of some of the `mapping_*` and `renaming_*`
-- class of modifiers
local function load_callback_opts (src, n_skip, default_style, params)
local style, shf
local tmp = src[n_skip + 1]
if tmp ~= nil then style = mapping_styles[tmp:match'^%s*(.-)%s*$'] end
if style == nil then style, shf = default_style, n_skip - 1
else shf = n_skip end
local n_exist, karg, varg = style[3], style[4], style[5]
tmp = style[6]
if tmp > -1 then
karg = src[tmp + shf]:match'^%s*(.-)%s*$'
if karg == '0' or karg:find'^%-?[1-9]%d*$' ~= nil then
karg = tonumber(karg)
n_exist = math.max(n_exist, karg)
end
end
tmp = style[7]
if tmp > -1 then
varg = src[tmp + shf]:match'^%s*(.-)%s*$'
if varg == '0' or varg:find'^%-?[1-9]%d*$' ~= nil then
varg = tonumber(varg)
n_exist = math.max(n_exist, varg)
end
end
local dest, argc, tnew, mem = load_child_opts(src, style[2] + shf,
n_exist, params)
tmp = style[1]
if (tmp == 3 or tmp == 2) and dest[karg] ~= nil then
tmp = tmp - 2 end
if (tmp == 3 or tmp == 1) and dest[varg] ~= nil then
tmp = tmp - 1 end
return dest, argc, tmp, karg, varg, tnew, mem
end
-- Parse the arguments of some of the `mapping_*` and `renaming_*` class of
-- modifiers
local function load_replace_args (opts, whoami)
if opts[1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No pattern string was given', 0) end
if opts[2] == nil then error(modulename ..
', ‘' .. whoami .. '’: No replacement string was given', 0) end
local ptn, repl, nmax, argc = opts[1], opts[2], tonumber(opts[3]), 3
if nmax ~= nil or (opts[3] or ''):match'^%s*$' ~= nil then argc = 4 end
local flg = opts[argc]
if flg ~= nil then flg = mkeywords[flg:match'^%s*(.-)%s*$'] end
if flg == 0 then flg = nil elseif flg ~= nil then argc = argc + 1 end
return ptn, repl, nmax, flg, argc, (nmax ~= nil and nmax < 1) or
(flg == 3 and ptn == repl)
end
-- Parse the arguments of the `with_*_matching` class of modifiers
local function load_pattern_args (opts, whoami)
local keyw
local ptns, state, nptns, cnt = {}, 0, 0, 1
for _, val in ipairs(opts) do
if state == 0 then
nptns, state = nptns + 1, -1
ptns[nptns] = { val, false, false }
else
keyw = val:match'^%s*(.*%S)'
if keyw == nil or mkeywords[keyw] == nil or (
state > 0 and mkeywords[keyw] > 0
) then break
else
state = mkeywords[keyw]
if state > 1 then ptns[nptns][2] = true end
if state == 3 then ptns[nptns][3] = true end
end
end
cnt = cnt + 1
end
if state == 0 then error(modulename .. ', ‘' .. whoami ..
'’: No pattern was given', 0) end
return ptns, nptns, cnt
end
-- Load the optional arguments of the `parsing`, `reinterpreting` and
-- `evaluating` modifiers
local function load_parse_opts (opts, start_from, isp, psp)
local tmp
local optslots, noptslots, argc, trimn, trimu, iplain, pplain =
{ true, true, true }, 3, start_from, true, false, true, true
repeat
noptslots, tmp = noptslots - 1, opts[argc]
if tmp == nil then break end
tmp = tmp:match'^%s*(.-)%s*$'
if optslots[1] ~= nil and trim_parse_opts[tmp] ~= nil then
tmp = trim_parse_opts[tmp]
trimn, trimu, optslots[1] = tmp[1], tmp[2], nil
elseif optslots[2] ~= nil and isep_parse_opts[tmp] ~= nil then
argc = argc + 1
iplain, isp, optslots[2] = isep_parse_opts[tmp],
opts[argc], nil
elseif optslots[3] ~= nil and psep_parse_opts[tmp] ~= nil then
argc = argc + 1
pplain, psp, optslots[3] = psep_parse_opts[tmp],
opts[argc], nil
else break end
argc = argc + 1
until noptslots < 1
return isp, iplain, psp, pplain, trimn, trimu, argc
end
-- Map parameters' values using a custom callback and a referenced table
local value_maps = {
[0] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do tbl[key] = fn() end
end,
[1] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[varg] = val
tbl[key] = fn()
end
end,
[2] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do
margs[karg] = key
tbl[key] = fn()
end
end,
[3] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[karg], margs[varg] = key, val
tbl[key] = fn()
end
end
}
-- Private table for `map_names()`
local name_thieves = {
[0] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[1] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[varg] = val
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[2] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg] = key
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[3] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg], rargs[varg] = key, val
steal_if_renamed(val, tbl, key, cache, fn())
end
end
}
-- Map parameters' names using a custom callback and a referenced table
local function map_names (tbl, rargs, karg, varg, looptype, fn)
local cache = {}
name_thieves[looptype](cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(cache) do tbl[key] = val end
end
-- Return a new table that contains `src` regrouped according to the numeric
-- suffixes in its keys
local function make_groups (src)
-- NOTE: `src` might be the original metatable!
local prefix, gid
local groups = {}
for key, val in pairs(src) do
-- `key` must only be a string or a number...
if type(key) == 'string' then
prefix, gid = key:match'^%s*(.-)%s*(%-?%d*)%s*$'
gid = tonumber(gid) or ''
else
prefix, gid = '', key
end
if groups[gid] == nil then groups[gid] = {} end
if prefix == '0' or prefix:find'^%-?[1-9]%d*$' ~= nil then
prefix = tonumber(prefix)
if prefix < 1 then prefix = prefix - 1 end
end
groups[gid][prefix] = val
end
return groups
end
-- Split into parts a string containing the `$#` and `$@` placeholders and
-- return the information as a skeleton table, a canvas table and a length
local function parse_placeholder_string (target)
local idx, s_pos, skel, canvas = 1, 1, {}, {}
local e_pos = string.find(target, '%$[@#]', 1, false)
while e_pos ~= nil do
canvas[idx] = target:sub(s_pos, e_pos - 1)
skel[idx + 1] = target:sub(e_pos, e_pos + 1) == '$@'
idx = idx + 2
s_pos = e_pos + 2
e_pos = string.find(target, '%$[@#]', s_pos, false)
end
if (s_pos > target:len()) then idx = idx - 1
else canvas[idx] = target:sub(s_pos) end
return skel, canvas, idx
end
-- Populate a table by parsing a parameter string (heavy lifting for `parsing`,
-- `reinterpreting` and `evaluating`)
local function parse_parameter_string (tbl, str, isp, ipl, psp, ppl, trn, tru)
local key, val, spos1, spos2, pos1, pos2
local pos3, idx, lenplone = 0, 1, #str + 1
if isp == nil or isp == '' then
if psp == nil or psp == '' then
if tru then tbl[idx] = str:match'^%s*(.-)%s*$'
else tbl[idx] = str end
return idx
end
spos1, spos2 = str:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = str:match'^%s*(.-)%s*$'
else val = str end
idx = idx + 1
else
key = get_parameter_name(str:sub(1, spos1 - 1))
val = str:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
return idx
end
if psp == nil or psp == '' then
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
if tru then val = val:match'^%s*(.-)%s*$' end
tbl[idx], idx = val, idx + 1
until pos2 == nil
return idx
end
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
spos1, spos2 = val:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = val:match'^%s*(.-)%s*$' end
idx = idx + 1
else
key = get_parameter_name(val:sub(1, spos1 - 1))
val = val:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
until pos2 == nil
return idx
end
-- Heavy lifting for `snapshotting` and `remembering`
local function make_child (ctx, src, whoami)
local len = tonumber(ctx.pipe[1])
if len == nil or len == 0 then
local stack = new_substack(ctx)
for key, val in pairs(src) do stack[key] = val end
return len == nil and 1 or 2
end
if len < 0 or math.floor(len) ~= len then error(modulename ..
', ‘' .. whoami .. '’: The number of parameters to copy must be an integer greater than zero', 0) end
copy_table_maxn(new_substack(ctx), src, len)
return 2
end
-- Heavy lifting for `setting_by_flushing`, `combining` and `combining_values`
local function set_strings_from_substack (ctx, dest, whoami)
if ctx.n_children < 1 then error(modulename ..
', ‘' .. whoami .. '’: There are no substacks to flush', 0) end
local currsnap = ctx.n_children
local stack = ctx.children[currsnap]
for key, val in pairs(memoryslots) do
if stack[key] ~= nil then dest[val] = stack[key] end
end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
end
-- Heavy lifting for `combining` and `combining_values`
local function combine_parameters (ctx, keyval_fn, whoami)
-- NOTE: `ctx.params` might be the original metatable! This function
-- MUST create a copy of it before returning
local opts = ctx.pipe
if ctx.pipe[1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No parameter name was provided', 0) end
local argc
local tbl, vars = ctx.params, {}
local sortfn, varsarg0, do_sort, tmp = load_sort_opt(opts[2])
if varsarg0 == 2 then tmp = opts[3] and opts[3]:match'^%s*(.-)%s*$' end
if tmp == 'with_flushed_glue' then
varsarg0 = varsarg0 + 1
argc = set_strings_from_opts(vars, opts, varsarg0 + 1)
set_strings_from_substack(ctx, vars, whoami)
else
if tmp == 'without_flushed_glue' then varsarg0 = varsarg0 + 1 end
argc = set_strings_from_opts(vars, opts, varsarg0 + 1)
end
if argc < varsarg0 then error(modulename ..
', ‘' .. whoami .. '’: No setting directive was given', 0) end
if next(tbl) == nil then
if vars.ifngiven ~= nil then ctx.params =
{ [get_parameter_name(ctx.pipe[1])] = vars.ifngiven }
elseif tbl == ctx.oparams then ctx.params = {} end
return argc
end
local cache, len
if do_sort then
local words
cache, words, len, tmp = get_key_list_sorted(tbl, sortfn)
for idx = 1, tmp do cache[len + idx] = words[idx] end
len = len + tmp
else
len, cache = 0, {}
for key in pairs(tbl) do
len = len + 1
cache[len] = key
end
end
local pmap, nss, kvs, pps = {}, 0, vars.pairsep or '', vars.itersep or ''
for idx = 1, len do
tmp, pmap[nss + 1] = cache[idx], pps
pmap[nss + 2] = keyval_fn(tmp, tbl[tmp], kvs)
nss = nss + 2
end
tmp = vars.oxfordsep or vars.lastsep
if tmp ~= nil and nss > 4 then pmap[nss - 1] = tmp
elseif nss > 2 and vars.lastsep ~= nil then
pmap[nss - 1] = vars.lastsep
end
pmap[1] = vars.header or ''
if vars.footer ~= nil then pmap[nss + 1] = vars.footer end
ctx.params = { [get_parameter_name(ctx.pipe[1])] = table.concat(pmap) }
return argc
end
-- Concatenate the numeric keys from the table of parameters to the numeric
-- keys from the table of options; non-numeric keys from the table of options
-- will prevail over colliding non-numeric keys from the table of parameters
local function concat_params (ctx)
local retval, tbl, nmax = {}, ctx.params, table.maxn(ctx.pipe)
if ctx.subset == 1 then
-- We need only the sequence
for key, val in ipairs(tbl) do retval[key + nmax] = val end
else
if ctx.subset == -1 then
for key in ipairs(tbl) do tbl[key] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
retval[key + nmax] = val
else retval[key] = val end
end
end
for key, val in pairs(ctx.pipe) do retval[key] = val end
return retval
end
-- Flush the parameters by calling a custom function for each value (after this
-- function has been invoked `ctx.params` will be no longer usable)
local function flush_params (ctx, fn)
local tbl = ctx.params
if ctx.subset == 1 then
for key, val in ipairs(tbl) do fn(key, val) end
return
end
if ctx.subset == -1 then
for key, val in ipairs(tbl) do tbl[key] = nil end
end
if ctx.sorttype > 0 then
local nums, words, nn, nw = get_key_list_sorted(tbl, natural_sort)
if ctx.sorttype == 2 then
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
return
end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
return
end
if ctx.subset ~= -1 then
for key, val in ipairs(tbl) do
fn(key, val)
tbl[key] = nil
end
end
for key, val in pairs(tbl) do fn(key, val) end
end
-- Flush the parameters by calling one of two custom functions for each value
-- (after this function has been invoked `ctx.params` will be no longer usable)
local function mixed_flush_params (ctx, fn_seq, fn_oth)
if ctx.subset == 1 then
for key, val in ipairs(ctx.params) do fn_seq(key, val) end
return
end
if ctx.subset == -1 then
flush_params(ctx, fn_oth)
return
end
local tbl = ctx.params
if ctx.sorttype > 0 then
local nums, words, nn, nw = get_key_list_sorted(tbl, natural_sort)
local sequence = {}
for key, val in ipairs(tbl) do sequence[key] = val end
if ctx.sorttype == 2 then
for idx = 1, nw do fn_oth(words[idx], tbl[words[idx]]) end
end
for idx = 1, nn do
if sequence[nums[idx]] then fn_seq(nums[idx], sequence[nums[idx]])
else fn_oth(nums[idx], tbl[nums[idx]]) end
end
if ctx.sorttype ~= 2 then
for idx = 1, nw do fn_oth(words[idx], tbl[words[idx]]) end
end
return
end
for key, val in ipairs(tbl) do
fn_seq(key, val)
tbl[key] = nil
end
for key, val in pairs(tbl) do fn_oth(key, val) end
end
-- Finalize and return a concatenated list
local function finalize_and_return_concatenated_list (ctx, lst, len, modsize)
if len > 0 then
local tmp = ctx.oxfordsep or ctx.lastsep
if tmp ~= nil and len > modsize * 2 then
lst[len - modsize + 1] = tmp
elseif len > modsize and ctx.lastsep ~= nil then
lst[len - modsize + 1] = ctx.lastsep
end
lst[1] = ctx.header or ''
if ctx.footer ~= nil then lst[len + 1] = ctx.footer end
ctx.text = table.concat(lst)
else ctx.text = ctx.ifngiven or '' end
end
--- ---
--- PUBLIC ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Modifiers ]]--
-------------------
-- Syntax: #invoke:params|sequential|pipe to
library.sequential = function (ctx)
if ctx.subset == 1 then error(modulename ..
': The ‘sequential’ directive has been provided more than once', 0) end
if ctx.subset == -1 then error(modulename ..
': The two directives ‘non-sequential’ and ‘sequential’ are in contradiction with each other', 0) end
if ctx.sorttype > 0 then error(modulename ..
': The ‘all_sorted’ and ‘reassorted’ directives are redundant when followed by ‘sequential’', 0) end
ctx.iterfunc, ctx.subset = ipairs, 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|non-sequential|pipe to
library['non-sequential'] = function (ctx)
if ctx.subset == -1 then error(modulename ..
': The ‘non-sequential’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘non-sequential’ are in contradiction with each other', 0) end
ctx.iterfunc, ctx.subset = pairs, -1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|all_sorted|pipe to
library.all_sorted = function (ctx)
if ctx.sorttype == 1 then error(modulename ..
': The ‘all_sorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘all_sorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 2 then error(modulename ..
': The two directives ‘reassorted’ and ‘sequential’ are in contradiction with each other', 0) end
ctx.sorttype = 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|reassorted|pipe to
library.reassorted = function (ctx)
if ctx.sorttype == 2 then error(modulename ..
': The ‘reassorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘reassorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘reassorted’ are in contradiction with each other', 0) end
ctx.sorttype = 2
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|setting|directives|...|pipe to
library.setting = function (ctx)
local argc = set_strings_from_opts(ctx, ctx.pipe, 1)
if argc < 2 then error(modulename ..
', ‘setting’: No directive was given', 0) end
return context_iterate(ctx, argc + 1)
end
-- Syntax: #invoke:params|scoring|new parameter name|[container]|pipe to
library.scoring = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘scoring’: No parameter name was provided', 0) end
local tmp
local retval, opts = 0, ctx.pipe
for _ in pairs(ctx.params) do retval = retval + 1 end
if opts[2] ~= nil then tmp = opts[2]:match'^%s*(.*%S)' end
if tmp == 'in_substack' then
new_substack(ctx)[get_parameter_name(opts[1])] = tostring(retval)
return context_iterate(ctx, 3)
end
ctx.params[get_parameter_name(opts[1])] = tostring(retval)
return context_iterate(ctx, tmp == 'here' and 3 or 2)
end
-- Syntax: #invoke:params|squeezing|pipe to
library.squeezing = function (ctx)
local store, indices, tbl, newlen = {}, {}, ctx.params, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
newlen = newlen + 1
indices[newlen], store[key], tbl[key] = key, val, nil
end
end
table.sort(indices)
for idx = 1, newlen do tbl[idx] = store[indices[idx]] end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|filling_the_gaps|pipe to
library.filling_the_gaps = function (ctx)
local newval, tbl, tmp, nmin, nmax, nnums =
ctx.pipe[1], ctx.params, {}, 1, nil, -1
if newval == nil then error(modulename ..
', ‘filling_the_gaps’: No value was provided', 0) end
for key, val in pairs(tbl) do
if type(key) == 'number' then
if nmax == nil then
if key < nmin then nmin = key end
nmax = key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
tmp[key], nnums = val, nnums + 1
end
end
if nmax ~= nil and nmax - nmin > nnums then
ctx.n_available = ctx.n_available + nmin + nnums - nmax
if ctx.n_available < 0 then error(modulename ..
', ‘filling_the_gaps’: It is possible to fill at most ' ..
tostring(maxfill) .. ' parameters', 0) end
for idx = nmin, nmax, 1 do tbl[idx] = newval end
for key, val in pairs(tmp) do tbl[key] = val end
end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|clearing|pipe to
library.clearing = function (ctx)
local tbl, numerics = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
end
end
for key, val in ipairs(numerics) do tbl[key] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|cutting|left cut|right cut|pipe to
library.cutting = function (ctx)
local lcut = tonumber(ctx.pipe[1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cutting’: Left cut must be an integer number', 0) end
local rcut = tonumber(ctx.pipe[2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cutting’: Right cut must be an integer number', 0) end
local tbl = ctx.params
local len = #tbl
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
local tot = lcut + rcut
if tot > 0 then
local cache = {}
if tot >= len then
for key in ipairs(tbl) do tbl[key] = nil end
tot = len
else
for idx = len - rcut + 1, len, 1 do tbl[idx] = nil end
for idx = 1, lcut, 1 do tbl[idx] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
if key > len then cache[key - tot] = val
else cache[key - lcut] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|cropping|left crop|right crop|pipe to
library.cropping = function (ctx)
local lcut = tonumber(ctx.pipe[1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cropping’: Left crop must be an integer number', 0) end
local rcut = tonumber(ctx.pipe[2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cropping’: Right crop must be an integer number', 0) end
local tbl = ctx.params
local nmin, nmax
for key in pairs(tbl) do
if type(key) == 'number' then
if nmin == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
if nmin ~= nil then
local len = nmax - nmin + 1
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
if lcut + rcut - len > -1 then
for key in pairs(tbl) do
if type(key) == 'number' then tbl[key] = nil end
end
elseif lcut + rcut > 0 then
for idx = nmax - rcut + 1, nmax do tbl[idx] = nil end
for idx = nmin, nmin + lcut - 1 do tbl[idx] = nil end
local lshift = nmin + lcut - 1
if lshift > 0 then
for idx = lshift + 1, nmax, 1 do
tbl[idx - lshift], tbl[idx] =
tbl[idx], nil
end
end
end
end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|purging|start offset|length|pipe to
library.purging = function (ctx)
local idx = tonumber(ctx.pipe[1])
if idx == nil or math.floor(idx) ~= idx then error(modulename ..
', ‘purging’: Start offset must be an integer number', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘purging’: Length must be an integer number', 0) end
local tbl = ctx.params
if len < 1 then
len = len + table.maxn(tbl)
if idx > len then return context_iterate(ctx, 3) end
len = len - idx + 1
end
ctx.params = copy_table_reduced(tbl, idx, len)
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|backpurging|start offset|length|pipe to
library.backpurging = function (ctx)
local last = tonumber(ctx.pipe[1])
if last == nil or math.floor(last) ~= last then error(modulename ..
', ‘backpurging’: Start offset must be an integer number', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘backpurging’: Length must be an integer number', 0) end
local idx
local tbl = ctx.params
if len > 0 then
idx = last - len + 1
else
for key in pairs(tbl) do
if type(key) == 'number' and (idx == nil or
key < idx) then idx = key end
end
if idx == nil then return context_iterate(ctx, 3) end
idx = idx - len
if last < idx then return context_iterate(ctx, 3) end
len = last - idx + 1
end
ctx.params = copy_table_reduced(ctx.params, idx, len)
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|shifting|addend|pipe to
library.shifting = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local nshift = tonumber(ctx.pipe[1])
if nshift == nil or nshift == 0 or math.floor(nshift) ~= nshift then
error(modulename .. ', ‘shifting’: A non-zero integer number must be provided', 0) end
local tbl = {}
for key, val in pairs(ctx.params) do
if type(key) == 'number' then tbl[key + nshift] = val
else tbl[key] = val end
end
ctx.params = tbl
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|reversing_numeric_names|pipe to
library.reversing_numeric_names = function (ctx)
local tbl, numerics, nmax = ctx.params, {}, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
if key > nmax then nmax = key end
end
end
for key, val in pairs(numerics) do tbl[nmax - key + 1] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|pivoting_numeric_names|pipe to
--[[
library.pivoting_numeric_names = function (ctx)
local tbl = ctx.params
local shift = #tbl + 1
if shift < 2 then return library.reversing_numeric_names(ctx) end
local numerics = {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key] = val
tbl[key] = nil
end
end
for key, val in pairs(numerics) do tbl[shift - key] = val end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|mirroring_numeric_names|pipe to
--[[
library.mirroring_numeric_names = function (ctx)
local nmax, nmin
local tbl, numerics = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key] = val
tbl[key] = nil
if nmax == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
for key, val in pairs(numerics) do tbl[nmax + nmin - key] = val end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|swapping_numeric_names|pipe to
--[[
library.swapping_numeric_names = function (ctx)
local tmp
local tbl, cache, nsize = ctx.params, {}, 0
for key in pairs(tbl) do
if type(key) == 'number' then
nsize = nsize + 1
cache[nsize] = key
end
end
table.sort(cache)
for idx = math.floor(nsize / 2), 1, -1 do
tmp = tbl[cache[idx] ]
tbl[cache[idx] ] = tbl[cache[nsize - idx + 1] ]
tbl[cache[nsize - idx + 1] ] = tmp
end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|sorting_sequential_values|[criterion]|pipe to
library.sorting_sequential_values = function (ctx)
local sortfn
if ctx.pipe[1] ~= nil then
sortfn = sortfunctions[ctx.pipe[1]:match'^%s*(.-)%s*$']
end
if sortfn then table.sort(ctx.params, sortfn)
else table.sort(ctx.params) end -- i.e. either `false` or `nil`
if sortfn == nil then return context_iterate(ctx, 1) end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|splicing|[add to position]|position|increment|
-- [number of elements to write]|...|pipe to
library.splicing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp2, argc, pos, refp
local opts, tbl = ctx.pipe, ctx.params
local tmp1 = opts[1]
if tmp1 ~= nil then
tmp2 = tonumber(tmp1)
if tmp2 == nil or math.floor(tmp2) ~= tmp2 then
pos, argc, tmp2 = tonumber(opts[2]), 4,
tmp1:match'^%s*(.*%S)'
if tmp2 ~= nil then
refp = position_references[tmp2]
if refp == nil then error(modulename ..
', ‘splicing’: ‘' .. tostring(tmp2) ..
'’ is not a valid first argument', 0) end
else refp = 0 end
else pos, argc, refp = tmp2, 3, 0 end
else pos, argc, refp = tonumber(opts[2]), 4, 0 end
if pos == nil or math.floor(pos) ~= pos then error(modulename ..
', ‘splicing’: The position must be an integer number', 0) end
local len = tonumber(opts[argc - 1])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘splicing’: The increment must be an integer number', 0) end
if refp == 2 then
for _ in ipairs(tbl) do pos = pos + 1 end
refp = 0
end
tmp1, tmp2 = nil, nil
if refp ~= 0 or len ~= 0 then
for key, val in pairs(tbl) do
if type(key) == 'number' then
if tmp1 == nil then tmp1, tmp2 = key, key
elseif key < tmp1 then tmp1 = key
elseif key > tmp2 then tmp2 = key end
end
end
end
if tmp2 == nil then len = 0
elseif refp == 3 then pos = pos + tmp2
elseif refp == 1 then pos = pos + tmp1 end
if len > 0 and pos + len > tmp1 and pos <= tmp2 then
tbl = copy_table_expanded(tbl, pos, len)
elseif len < 0 and pos - len > tmp1 and pos <= tmp2 then
tbl = copy_table_reduced(tbl, pos, -len)
else tbl = copy_or_ref_table(tbl, tbl ~= ctx.oparams) end
ctx.params = tbl
tmp1 = tonumber(opts[argc])
if len == 0 and (tmp1 == nil or tmp1 < 1) then error(modulename ..
', ‘splicing’: When the increment is zero the number of elements to add cannot be zero', 0) end
if tmp1 == nil or tmp1 < 0 or math.floor(tmp1) ~= tmp1 then
return context_iterate(ctx, argc)
end
tmp2 = argc - pos + 1
for key = pos, pos + tmp1 - 1 do tbl[key] = opts[key + tmp2] end
return context_iterate(ctx, argc + tmp1 + 1)
end
-- Syntax: #invoke:params|imposing|name|value|pipe to
library.imposing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘imposing’: Missing parameter name to impose', 0) end
ctx.params[get_parameter_name(ctx.pipe[1])] = ctx.pipe[2]
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|providing|name|value|pipe to
library.providing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘providing’: Missing parameter name to provide', 0) end
local key = get_parameter_name(ctx.pipe[1])
if ctx.params[key] == nil then ctx.params[key] = ctx.pipe[2] end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|reassigning|source|destination|[mode]|pipe to
library.reassigning = function (ctx)
local opts, tbl = ctx.pipe, ctx.params
if opts[1] == nil then error(modulename ..
', ‘reassigning’: Missing source parameter', 0) end
if opts[2] == nil then error(modulename ..
', ‘reassigning’: Missing destination parameter', 0) end
local mode, argc
local src = get_parameter_name(opts[1])
local val = tbl[src]
if opts[3] ~= nil then mode = a_modes[opts[3]:match'^%s*(.-)%s*$'] end
if mode == nil then mode, argc = 0, 3 else argc = 4 end
if val == nil and mode > 1 then return context_iterate(ctx, argc) end
local dest = get_parameter_name(opts[2])
local tmp = tbl[dest] == nil
if mode % 2 == 0 or (mode == 7 and tmp) then tbl[src] = nil end
if tmp or mode < 4 then tbl[dest] = val end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|discarding|name|[how many]|pipe to
library.discarding = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘discarding’: Missing parameter name to discard', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil then
ctx.params[get_parameter_name(ctx.pipe[1])] = nil
return context_iterate(ctx, 2)
end
local key = tonumber(ctx.pipe[1])
if key == nil or math.floor(key) ~= key then error(modulename ..
', ‘discarding’: A range was provided, but the initial parameter name is not an integer number', 0) end
if len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘discarding’: A range can only be an integer number greater than zero', 0) end
for idx = key, key + len - 1 do ctx.params[idx] = nil end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|excluding_non-numeric_names|pipe to
library['excluding_non-numeric_names'] = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) ~= 'number' then tmp[key] = nil end
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|excluding_numeric_names|pipe to
library.excluding_numeric_names = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) == 'number' then tmp[key] = nil end
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|with_name_matching|target 1|[plain flag 1]|[or]
-- |[target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_name_matching = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp, ptn
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_name_matching')
local tbl, newparams = ctx.params, {}
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
tmp = ptn[1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tmp = tonumber(tmp)
end
newparams[tmp] = tbl[tmp]
else
for key, val in pairs(tbl) do
if tostring(key):find(ptn[1], 1, ptn[2]) then
newparams[key] = val
end
end
end
end
ctx.params = newparams
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_name_not_matching|target 1|[plain flag 1]
-- |[and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_name_not_matching = function (ctx)
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_name_not_matching')
local tbl = ctx.params
if nptns == 1 and targets[1][3] then
local tmp = targets[1][1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tbl[tonumber(tmp)] = nil
else tbl[tmp] = nil end
return context_iterate(ctx, argc)
end
local yesmatch, ptn
for key in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if tostring(key) ~= ptn[1] then
yesmatch = false
break
end
elseif not tostring(key):find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_value_matching|target 1|[plain flag 1]|[or]
-- |[target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_value_matching = function (ctx)
local nomatch, ptn
local tbl = ctx.params
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_value_matching')
for key, val in pairs(tbl) do
nomatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val == ptn[1] then
nomatch = false
break
end
elseif val:find(ptn[1], 1, ptn[2]) then
nomatch = false
break
end
end
if nomatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_value_not_matching|target 1|[plain flag 1]
-- |[and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_value_not_matching = function (ctx)
local yesmatch, ptn
local tbl = ctx.params
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_value_not_matching')
for key, val in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val ~= ptn[1] then
yesmatch = false
break
end
elseif not val:find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|keeping_at_most|number of parameters to pick|pipe to
library.keeping_at_most = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local len = tonumber(ctx.pipe[1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘keeping_at_most’: The number of parameters to keep must be an integer greater than zero', 0) end
ctx.params = copy_table_maxn({}, ctx.params, len)
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|trimming_values|pipe to
library.trimming_values = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:match'^%s*(.-)%s*$' end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_to_lowercase|pipe to
library.mapping_to_lowercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:lower() end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_to_uppercase|pipe to
library.mapping_to_uppercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:upper() end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.mapping_by_calling = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘mapping_by_calling’: No template name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.values_only, ctx.params)
local model = { title = tname, args = margs }
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_invoking|module name|function name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_invoking = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘mapping_by_invoking’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘mapping_by_invoking’: No function name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 2, mapping_styles.values_only, ctx.params)
local model = { title = 'Module:' .. mname, args = margs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
value_maps[looptype](tbl, margs, karg, varg, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_magic = function (ctx)
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘mapping_by_magic’: No parser function was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.values_only, ctx.params)
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:callParserFunction(magic, margs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.mapping_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die =
load_replace_args(ctx.pipe, 'mapping_by_replacing')
if die then return context_iterate(ctx, argc) end
local tbl = ctx.params
if flg == 3 then
for key, val in pairs(tbl) do
if val == ptn then tbl[key] = repl end
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
for key, val in pairs(tbl) do
tbl[key] = val:gsub(ptn, repl, nmax)
end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_mixing|mixing string|pipe to
library.mapping_by_mixing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘mapping_by_mixing’: No mixing string was provided', 0) end
local tbl, mix = ctx.params, ctx.pipe[1]
if mix == '$#' then
for key in pairs(tbl) do tbl[key] = tostring(key) end
return context_iterate(ctx, 2)
end
local skel, cnv, n_parts = parse_placeholder_string(mix)
for key, val in pairs(tbl) do
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
tbl[key] = table.concat(cnv)
end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|mapping_to_names|pipe to
--[[
library.mapping_to_names = function (ctx)
local tbl = ctx.params
for key in pairs(tbl) do tbl[key] = tostring(key) end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|renaming_to_lowercase|pipe to
library.renaming_to_lowercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:lower()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|renaming_to_uppercase|pipe to
library.renaming_to_uppercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:upper()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|renaming_to_sequence|[sort order]|pipe to
library.renaming_to_sequence = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache, len
local tbl = ctx.params
local sortfn, argc, do_sort = load_sort_opt(ctx.pipe[1])
if do_sort then
local words, wl
cache, words, len, wl = get_key_list_sorted(tbl, sortfn)
for idx = 1, len do cache[idx] = tbl[cache[idx]] end
for idx = 1, wl do cache[len + idx] = tbl[words[idx]] end
else
len, cache = 0, {}
for _, val in pairs(tbl) do
len = len + 1
cache[len] = val
end
end
ctx.params = cache
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.renaming_by_calling = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘renaming_by_calling’: No template name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.names_only, ctx.params)
local model = { title = tname, args = rargs }
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_invoking|module name|function
-- name|[call style]|[let/use]|[...]|[let/use]|[...]|[number of
-- additional arguments]|[argument 1]|[argument 2]|[...]|[argument
-- N]|pipe to
library.renaming_by_invoking = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘renaming_by_invoking’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘renaming_by_invoking’: No function name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 2, mapping_styles.names_only, ctx.params)
local model = { title = 'Module:' .. mname, args = rargs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘renaming_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
map_names(tbl, rargs, karg, varg, looptype, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.renaming_by_magic = function (ctx)
local opts = ctx.pipe
local magic
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘renaming_by_magic’: No parser function was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.names_only, ctx.params)
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:callParserFunction(magic, rargs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.renaming_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die =
load_replace_args(ctx.pipe, 'renaming_by_replacing')
if die then return context_iterate(ctx, argc) end
local tbl = ctx.params
if flg == 3 then
ptn = get_parameter_name(ptn)
local val = tbl[ptn]
if val ~= nil then
tbl[ptn], tbl[get_parameter_name(repl)] = nil, val
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
local cache = {}
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache,
tostring(key):gsub(ptn, repl, nmax))
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_mixing|mixing string|pipe to
library.renaming_by_mixing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
if ctx.pipe[1] == nil then error(modulename ..
', ‘renaming_by_mixing’: No mixing string was provided', 0) end
local mix = ctx.pipe[1]:match'^%s*(.-)%s*$'
local cache = {}
if mix == '$@' then
for _, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = val
end
else
local skel, canvas, n_parts = parse_placeholder_string(mix)
for key, val in pairs(ctx.params) do
for idx = 2, n_parts, 2 do
if skel[idx] then canvas[idx] = val
else canvas[idx] = tostring(key) end
end
cache[get_parameter_name(table.concat(canvas))] = val
end
end
ctx.params = cache
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|renaming_to_values|pipe to
--[[
library.renaming_to_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for _, val in pairs(ctx.params) do cache[val] = val end
ctx.params = cache
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|grouping_by_calling|template
-- name|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.grouping_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp, argc, tbl, mem = load_child_opts(ctx.pipe, 2, 0, ctx.params)
local gargs = {}
for key, val in pairs(tmp) do
if type(key) == 'number' and key < 1 then gargs[key - 1] = val
else gargs[key] = val end
end
tmp = ctx.pipe[1]
if tmp ~= nil then tmp = tmp:match'^%s*(.*%S)' end
if tmp == nil then error(modulename ..
', ‘grouping_by_calling’: No template name was provided', 0) end
local model = { title = tmp }
local groups = make_groups(tbl)
for gid, group in pairs(groups) do
for key, val in pairs(gargs) do group[key] = val end
group[0], model.args = gid, group
groups[gid] = ctx.frame:expandTemplate(model)
end
for key, val in pairs(mem) do groups[key] = val end
ctx.params = groups
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|parsing|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.parsing = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘parsing’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '|', '=')
parse_parameter_string(ctx.params, opts[1], isep, iplain, psep, pplain,
trimnamed, trimunnamed)
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|reinterpreting|parameter to reinterpret|[trim
-- flag]|[iteration delimiter setter]|[...]|[key-value delimiter
-- setter]|[...]|pipe to
library.reinterpreting = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘reinterpreting’: No parameter to reinterpret was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '|', '=')
local tbl, tmp = ctx.params, get_parameter_name(opts[1])
local str = tbl[tmp]
if str ~= nil then
tbl[tmp] = nil
parse_parameter_string(tbl, str, isep, iplain, psep, pplain,
trimnamed, trimunnamed)
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|evaluating|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.evaluating = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘evaluating’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '!', ':')
if opts[1]:match'^%s*(.*%S)' == nil then
ctx.pipe = copy_or_ref_table(opts, opts ~= ctx.opipe)
return context_iterate(ctx, argc)
end
local new_opts, cache = {}, {}
local shift = parse_parameter_string(cache, opts[1], isep, iplain,
psep, pplain, trimnamed, trimunnamed) - argc
for key, val in pairs(opts) do
if type(key) ~= 'number' or key < 1 then new_opts[key] = val
elseif key >= argc then new_opts[key + shift] = val end
end
for key, val in pairs(cache) do new_opts[key] = val end
ctx.pipe = new_opts
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mixing_names_and_values|mixing string|pipe to
library.mixing_names_and_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
if ctx.pipe[1] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter names', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter values', 0) end
local tmp
local mix_k = ctx.pipe[1]:match'^%s*(.-)%s*$'
local cache, mix_v = {}, ctx.pipe[2]
if mix_k == '$@' and mix_v == '$@' then
for _, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = val
end
elseif mix_k == '$@' and mix_v == '$#' then
for key, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = tostring(key)
end
elseif mix_k == '$#' and mix_v == '$#' then
for key in pairs(ctx.params) do cache[key] = tostring(key) end
else
local skel_k, cnv_k, n_parts_k = parse_placeholder_string(mix_k)
local skel_v, cnv_v, n_parts_v = parse_placeholder_string(mix_v)
for key, val in pairs(ctx.params) do
tmp = tostring(key)
for idx = 2, n_parts_k, 2 do
if skel_k[idx] then cnv_k[idx] = val else cnv_k[idx] = tmp end
end
for idx = 2, n_parts_v, 2 do
if skel_v[idx] then cnv_v[idx] = val else cnv_v[idx] = tmp end
end
cache[get_parameter_name(table.concat(cnv_k))] =
table.concat(cnv_v)
end
end
ctx.params = cache
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|swapping_names_and_values|pipe to
--[[
library.swapping_names_and_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do cache[val] = key end
ctx.params = cache
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|combining|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return key .. kvs .. val end,
'combining'
) + 1)
end
-- Syntax: #invoke:params|combining_values|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return val end,
'combining_values'
) + 1)
end
-- Syntax: #invoke:params|combining_by_calling|template name|new parameter
-- name|pipe to
library.combining_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tname = ctx.pipe[1]
if tname ~= nil then tname = tname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_calling’: No template name was provided', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘combining_by_calling’: No parameter name was provided', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[2])] = ctx.frame:expandTemplate{
title = tname,
args = ctx.params
}
}
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|combining_by_invoking|module name|function name|new
-- parameter name|pipe to
library.combining_by_invoking = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local mname = ctx.pipe[1]
if mname ~= nil then mname = mname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_invoking’: No module name was provided', 0) end
local fname = ctx.pipe[2]
if fname ~= nil then fname = fname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_invoking’: No function name was provided', 0) end
if ctx.pipe[3] == nil then error(modulename ..
', ‘combining_by_invoking’: No parameter name was provided', 0) end
local model = { title = 'Module:' .. mname, args = ctx.params }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[3])] =
tostring(mfunc(ctx.frame:newChild(model)))
}
return context_iterate(ctx, 4)
end
-- Syntax: #invoke:params|combining_by_magic|parser function|new parameter
-- name|pipe to
library.combining_by_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local magic = ctx.pipe[1]
if magic ~= nil then magic = magic:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_magic’: No parser function was provided', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘combining_by_magic’: No parameter name was provided', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[2])] =
ctx.frame:callParserFunction(magic, ctx.params)
}
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|snapshotting|[maximum number]|pipe to
library.snapshotting = function (ctx)
return context_iterate(ctx, make_child(ctx, ctx.params, 'snapshotting'))
end
-- Syntax: #invoke:params|remembering|[maximum number]|pipe to
library.remembering = function (ctx)
return context_iterate(ctx, make_child(ctx, ctx.oparams, 'remembering'))
end
-- Syntax: #invoke:params|entering_substack|[new]|pipe to
library.entering_substack = function (ctx)
local tbl, ncurrparent = ctx.params, ctx.n_parents + 1
if ctx.parents == nil then ctx.parents = { tbl }
else ctx.parents[ncurrparent] = tbl end
ctx.n_parents = ncurrparent
if ctx.pipe[1] ~= nil and ctx.pipe[1]:match'^%s*new%s*$' then
ctx.params = {}
return context_iterate(ctx, 2)
end
local currsnap = ctx.n_children
if currsnap > 0 then
ctx.params, ctx.children[currsnap], ctx.n_children =
ctx.children[currsnap], nil, currsnap - 1
else
local newparams = {}
for key, val in pairs(tbl) do newparams[key] = val end
ctx.params = newparams
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|pulling|parameter name|pipe to
library.pulling = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘pulling’: No parameter to pull was provided', 0) end
local tmp = ctx.n_parents
local parent = tmp < 1 and ctx.oparams or ctx.parents[tmp]
tmp = get_parameter_name(opts[1])
if parent[tmp] ~= nil then ctx.params[tmp] = parent[tmp] end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|recalling|parameter name|pipe to
library.recalling = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘recalling’: No parameter to recall was provided', 0) end
local arg = get_parameter_name(opts[1])
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|finding|parameter name|pipe to
--[[
library.finding = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘finding’: No parameter to find was provided', 0) end
local arg = get_parameter_name(opts[1])
local parent
for idx = ctx.n_parents, 1, -1 do
parent = ctx.parents[idx]
if parent[arg] ~= nil then
ctx.params[arg] = parent[arg]
return context_iterate(ctx, 2)
end
end
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, 2)
end
]]--
-- Syntax: #invoke:params|picking|number of parameters to pick|pipe to
--[[
library.picking = function (ctx)
local len = tonumber(ctx.pipe[1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘picking’: The number of parameters to pick must be an integer greater than zero', 0) end
if ctx.n_parents < 1 then copy_table_maxn(ctx.params, ctx.oparams, len)
else copy_table_maxn(ctx.params, ctx.parents[ctx.n_parents], len) end
return context_iterate(ctx, 2)
end
]]--
-- Syntax: #invoke:params|detaching_substack|pipe to
library.detaching_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘detaching_substack’: No substack has been created', 0) end
local parent = ctx.parents[ncurrparent]
for key in pairs(ctx.params) do parent[key] = nil end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|dropping_substack|pipe to
library.dropping_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘dropping_substack’: No substack has been created', 0) end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents =
ctx.parents[ncurrparent], nil, ncurrparent - 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|leaving_substack|pipe to
library.leaving_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘leaving_substack’: No substack has been created', 0) end
local currsnap = ctx.n_children + 1
if ctx.children == nil then ctx.children = { ctx.params }
else ctx.children[currsnap] = ctx.params end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents, ctx.n_children =
ctx.parents[ncurrparent], nil, ncurrparent - 1, currsnap
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|merging_substack|pipe to
library.merging_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘merging_substack’: No substack has been created', 0) end
local parent, child = ctx.parents[ncurrparent], ctx.params
ctx.params, ctx.parents[ncurrparent], ctx.n_parents = parent, nil,
ncurrparent - 1
for key, val in pairs(child) do parent[key] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|flushing|pipe to
library.flushing = function (ctx)
if ctx.n_children < 1 then error(modulename ..
', ‘flushing’: There are no substacks to flush', 0) end
local parent, currsnap = ctx.params, ctx.n_children
for key, val in pairs(ctx.children[currsnap]) do parent[key] = val end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|setting_by_flushing|pipe to
library.setting_by_flushing = function (ctx)
set_strings_from_substack(ctx, ctx, 'setting_by_flushing')
return context_iterate(ctx, 1)
end
--[[ Functions ]]--
-----------------------------
-- Syntax: #invoke:params|count
library.count = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local retval = 0
for _ in ctx.iterfunc(ctx.params) do retval = retval + 1 end
if ctx.subset == -1 then retval = retval - #ctx.params end
ctx.text = retval
return false
end
-- Syntax: #invoke:args|concat_and_call|template name|[prepend 1]|[prepend 2]
-- |[...]|[item n]|[named item 1=value 1]|[...]|[named item n=value
-- n]|[...]
library.concat_and_call = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘concat_and_call’: No template name was provided', 0) end
remove_numeric_keys(opts, 1, 1)
ctx.text = ctx.frame:expandTemplate{
title = tname,
args = concat_params(ctx)
}
return false
end
-- Syntax: #invoke:args|concat_and_invoke|module name|function name|[prepend
-- 1]|[prepend 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named
-- item n=value n]|[...]
library.concat_and_invoke = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘concat_and_invoke’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘concat_and_invoke’: No function name was provided', 0) end
remove_numeric_keys(opts, 1, 2)
local mfunc = require('Module:' .. mname)[fname]
if mfunc == nil then error(modulename ..
', ‘concat_and_invoke’: The function ‘' .. fname ..
'’ does not exist', 0) end
ctx.text = mfunc(ctx.frame:newChild{
title = 'Module:' .. mname,
args = concat_params(ctx)
})
return false
end
-- Syntax: #invoke:args|concat_and_magic|parser function|[prepend 1]|[prepend
-- 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named item n=
-- value n]|[...]
library.concat_and_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘concat_and_magic’: No parser function was provided', 0) end
remove_numeric_keys(opts, 1, 1)
ctx.text = ctx.frame:callParserFunction(magic, concat_params(ctx))
return false
end
-- Syntax: #invoke:params|value_of|parameter name
library.value_of = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘value_of’: No parameter name was provided', 0) end
local val
local key = opts[1]:match'^%s*(.-)%s*$'
if key == '0' or key:find'^%-?[1-9]%d*$' ~= nil then
key = tonumber(key)
val = ctx.params[key]
-- No worries: #ctx.params is unused when the modifier is in
-- first position (and therefore `ctx.params` is a metatable)
if val ~= nil and (
ctx.subset ~= -1 or key > #ctx.params or key < 1
) and (
ctx.subset ~= 1 or (key <= #ctx.params and key > 0)
) then
ctx.text = (ctx.header or '') .. val .. (ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
else
val = ctx.params[key]
if ctx.subset ~= 1 and val ~= nil then ctx.text = (ctx.header
or '') .. val .. (ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
end
return false
end
-- Syntax: #invoke:params|list
library.list = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss =
pps, key, kvs, val, nss + 4
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|list_values
library.list_values = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
-- NOTE: `library.coins()` and `library.unique_coins()` rely on us
local ret, nss, pps = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], nss = pps, val, nss + 2
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|list_maybe_with_names
library.list_maybe_with_names = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
mixed_flush_params(
ctx,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, '', '', val, nss + 4
end,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, key, kvs, val, nss + 4
end
)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|coins|[first coin = value 1]|[second coin = value
-- 2]|[...]|[last coin = value N]
--[[
library.coins = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local opts, tbl = ctx.pipe, ctx.params
for key, val in pairs(tbl) do tbl[key] = opts[get_parameter_name(val)] end
return library.list_values(ctx)
end
]]--
-- Syntax: #invoke:params|unique_coins|[first coin = value 1]|[second coin =
-- value 2]|[...]|[last coin = value N]
--[[
library.unique_coins = function (ctx)
local tmp
local opts, tbl = ctx.pipe, ctx.params
for key, val in pairs(tbl) do
tmp = get_parameter_name(val)
tbl[key], opts[tmp] = opts[tmp], nil
end
return library.list_values(ctx)
end
]]
-- Syntax: #invoke:params|for_each|wikitext
library.for_each = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, pps, txt = {}, 0, ctx.itersep or '', ctx.pipe[1] or ''
local skel, cnv, n_parts = parse_placeholder_string(txt)
flush_params(ctx, function (key, val)
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
ret[nss + 1], nss = pps, nss + 2
ret[nss] = table.concat(cnv)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each|template name|[append 1]|[append 2]
-- |[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘call_for_each’: No template name was provided', 0) end
local model = { title = tname, args = opts }
local ret, nss, ccs = {}, 0, ctx.itersep or ''
table.insert(opts, 1, true)
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each|module name|module function|[append
-- 1]|[append 2]|[...]|[append n]|[named param 1=value 1]|[...]
-- |[named param n=value n]|[...]
library.invoke_for_each = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘invoke_for_each’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘invoke_for_each’: No function name was provided', 0) end
local model = { title = 'Module:' .. mname, args = opts }
local mfunc = require(model.title)[fname]
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each|parser function|[append 1]|[append 2]
-- |[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.magic_for_each = function (ctx)
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘magic_for_each’: No parser function was provided', 0) end
local ret, nss, ccs = {}, 0, ctx.itersep or ''
table.insert(opts, 1, true)
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, opts)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_value|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_value = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘call_for_each_value’: No template name was provided', 0) end
local model = { title = tname, args = opts }
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each_value|module name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.invoke_for_each_value = function (ctx)
local opts = ctx.pipe
local mname, fname
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘invoke_for_each_value’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘invoke_for_each_value’: No function name was provided', 0) end
local model = { title = 'Module:' .. mname, args = opts }
local mfunc = require(model.title)[fname]
local ret, nss, ccs = {}, 0, ctx.itersep or ''
remove_numeric_keys(opts, 1, 1)
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each_value|parser function|[append 1]
-- |[append 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named
-- param n=value n]|[...]
library.magic_for_each_value = function (ctx)
local opts = ctx.pipe
local magic
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘magic_for_each_value’: No parser function was provided', 0) end
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, opts)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_group|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_group = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local tmp
if ctx.pipe[1] ~= nil then tmp = ctx.pipe[1]:match'^%s*(.*%S)' end
if tmp == nil then error(modulename ..
', ‘call_for_each_group’: No template name was provided', 0) end
local model = { title = tmp }
local opts, ret, nss, ccs = {}, {}, 0, ctx.itersep or ''
for key, val in pairs(ctx.pipe) do
if type(key) == 'number' then opts[key - 1] = val
else opts[key] = val end
end
ctx.pipe = opts
ctx.params = make_groups(ctx.params)
flush_params(ctx, function (gid, group)
for key, val in pairs(opts) do group[key] = val end
group[0], model.args, ret[nss + 1], nss = gid, group, ccs,
nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
--[[ First-position-only modifiers ]]--
---------------------------------------
-- Syntax: #invoke:params|new|pipe to
static_iface.new = function (child_frame)
local ctx = context_new(child_frame)
ctx.pipe = copy_or_ref_table(ctx.opipe, false)
ctx.params = {}
main_loop(ctx, context_iterate(ctx, 1))
return ctx.text
end
--[[ First-position-only functions ]]--
---------------------------------------
-- Syntax: #invoke:params|self
static_iface.self = function (frame)
return frame:getParent():getTitle()
end
--[[ Public metatable of functions ]]--
---------------------------------------
return setmetatable({}, {
__index = function (_, query)
local fname = query:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
': You must specify a function to call', 0) end
local func = static_iface[fname]
if func ~= nil then return func end
func = library[fname]
if func == nil then error(modulename ..
': The function ‘' .. fname .. '’ does not exist', 0) end
return function (child_frame)
local ctx = context_new(child_frame)
ctx.pipe = copy_or_ref_table(ctx.opipe, refpipe[fname])
ctx.params = copy_or_ref_table(ctx.oparams, refparams[fname])
main_loop(ctx, func)
return ctx.text
end
end
})
s0wwht3ty2l3u443tnfm9mh3z5pmpgj
62896
62880
2026-07-24T03:48:04Z
Grufo
1773
Update from [[d:Special:GoToLinkedPage/mediawikiwiki/Q122696746|master]] using [[mw:Synchronizer| #Synchronizer]]
62896
Scribunto
text/plain
require[[strict]]
--- ---
--- PRIVATE ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Abstract utilities ]]--
----------------------------
-- Helper function for `string.gsub()` (for managing zero-padded numbers)
local function zero_padded (str)
return ('%03d%s'):format(#str, str)
end
-- Helper function for `table.sort()` (for natural sorting)
local function natural_sort (var1, var2)
return var1:gsub('%d+', zero_padded) < var2:gsub('%d+', zero_padded)
end
-- Return a copy or a reference to a table
local function copy_or_ref_table (src, refonly)
if refonly then return src end
local newtab = {}
for key, val in pairs(src) do newtab[key] = val end
return newtab
end
-- Copy at most N items (of all kinds) from `src` to `dest` and return `dest`
local function copy_table_maxn (dest, src, len)
local idx = 1
for key, val in pairs(src) do
dest[key], idx = val, idx + 1
if idx > len then break end
end
return dest
end
-- Remove some numeric elements from a table, shifting everything to the left
local function remove_numeric_keys (tbl, idx, len)
local cache, tmp = {}, idx + len - 1
for key, val in pairs(tbl) do
if type(key) == 'number' and key >= idx then
if key > tmp then cache[key - len] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
-- Make a reduced copy of a table (shifting in both directions if necessary)
local function copy_table_reduced (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
elseif key > tmp then ret[key - len] = val end
end
elseif tmp > 0 then
local nshift = 1 - idx
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > tmp then ret[key - tmp] = val
elseif key < idx then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
elseif key < idx then ret[key + len] = val end
end
end
return ret
end
-- Make an expanded copy of a table (shifting in both directions if necessary)
local function copy_table_expanded (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
else ret[key + len] = val end
end
elseif tmp > 0 then
local nshift = idx - 1
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > 0 then ret[key + tmp] = val
elseif key < 1 then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
else ret[key - len] = val end
end
end
return ret
end
-- Given a table, create two new tables containing the sorted list of keys
local function get_key_list_sorted (tbl, sort_fn)
local nums, words, nn, nw = {}, {}, 0, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
nn = nn + 1
nums[nn] = key
else
nw = nw + 1
words[nw] = key
end
end
table.sort(nums)
table.sort(words, sort_fn)
return nums, words, nn, nw
end
-- Parse a parameter name string and return it as a string or a number
local function get_parameter_name (par_str)
local ret = par_str:match'^%s*(.-)%s*$'
if ret ~= '0' and ret:find'^%-?[1-9]%d*$' == nil then return ret end
return tonumber(ret)
end
-- Move a key from a table to another, but only if under a different name and
-- always parsing numeric strings as numbers
local function steal_if_renamed (val, src, skey, dest, dkey)
local realkey = get_parameter_name(dkey)
if skey ~= realkey then dest[realkey], src[skey] = val, nil end
end
--[[ Public strings ]]--
------------------------
-- Special match keywords (functions and modifiers MUST avoid these names)
local mkeywords = {
['or'] = 0,
pattern = 1,
plain = 2,
strict = 3
}
-- Sort functions (functions and modifiers MUST avoid these names)
local sortfunctions = {
alphabetically = false,
naturally = natural_sort
}
-- Callback styles for the `mapping_*` and `renaming_*` class of modifiers
-- (functions and modifiers MUST avoid these names)
--[[
Meanings of the columns:
col[1] = Loop type (0-3)
col[2] = Number of module arguments that the style requires (1-3)
col[3] = Minimum number of sequential parameters passed to the callback
col[4] = Name of the callback parameter where to place each parameter name
col[5] = Name of the callback parameter where to place each parameter value
col[6] = Argument in the modifier's invocation that will override `col[4]`
col[7] = Argument in the modifier's invocation that will override `col[5]`
A value of `-1` indicates that no meaningful value is stored (i.e. `nil`)
]]--
local mapping_styles = {
names_and_values = { 3, 2, 2, 1, 2, -1, -1 },
values_and_names = { 3, 2, 2, 2, 1, -1, -1 },
values_only = { 1, 2, 1, -1, 1, -1, -1 },
names_only = { 2, 2, 1, 1, -1, -1, -1 },
names_and_values_as = { 3, 4, 0, -1, -1, 2, 3 },
names_only_as = { 2, 3, 0, -1, -1, 2, -1 },
values_only_as = { 1, 3, 0, -1, -1, -1, 2 },
blindly = { 0, 2, 0, -1, -1, -1, -1 }
}
-- Memory slots (functions and modifiers MUST avoid these names)
local memoryslots = {
h = 'header',
f = 'footer',
i = 'itersep',
l = 'lastsep',
n = 'ifngiven',
p = 'pairsep',
s = 'oxfordsep'
}
-- Possible trimming modes for the `parsing` modifier
local trim_parse_opts = {
trim_none = { false, false },
trim_positional = { false, true },
trim_named = { true, false },
trim_all = { true, true }
}
-- Possible string modes for the iteration separator in the `parsing` and
-- `reinterpreting` modifiers
local isep_parse_opts = {
splitter_pattern = false,
splitter_string = true
}
-- Possible string modes for the key-value separator in the `parsing` and
-- `reinterpreting` modifiers
local psep_parse_opts = {
setter_pattern = false,
setter_string = true
}
-- Possible position references for the `splicing` modifier
local position_references = {
add_nothing = 0,
add_smallest_number = 1,
add_last_of_sequence = 2,
add_largest_number = 3
}
-- Possible modes for the `reassigning` modifier
local a_modes = {
transfer = 0,
clone = 1,
rename = 2,
copy = 3,
sacrifice = 4,
provide = 5,
spare = 7
}
-- Functions and modifiers MUST avoid these names too: `here`, `in_substack`,
-- `let`, `expose`, `use`, `with_flushed_glue`, `without_flushed_glue`
-- `without_sorting`
--[[ Private constants ]]--
---------------------------
-- Hard-coded name of the module (to avoid going through `frame:getTitle()`)
local modulename = 'Module:Params'
-- The functions listed here declare that they don't need the `frame.args`
-- metatable to be copied into a regular table; if they are modifiers they also
-- guarantee that they will make their own (modified) copy available
local refpipe = {
call_for_each_group = true,
--coins = true,
count = true,
evaluating = true,
for_each = true,
list = true,
list_values = true,
list_maybe_with_names = true,
value_of = true
}
-- The functions listed here declare that they don't need the
-- `frame:getParent().args` metatable to be copied into a regular table; if
-- they are modifiers they also guarantee that they will make their own
-- (modified) copy available
local refparams = {
call_for_each_group = true,
combining = true,
combining_by_calling = true,
combining_values = true,
concat_and_call = true,
concat_and_invoke = true,
concat_and_magic = true,
count = true,
grouping_by_calling = true,
mixing_names_and_values = true,
keeping_at_most = true,
renaming_by_mixing = true,
renaming_to_sequence = true,
renaming_to_uppercase = true,
renaming_to_lowercase = true,
--renaming_to_values = true,
shifting = true,
splicing = true,
--swapping_names_and_values = true,
value_of = true,
with_name_matching = true
}
-- Maximum number of numeric parameters that can be filled, if missing (we
-- chose an arbitrary number for this constant; you can discuss about its
-- optimal value at Module talk:Params)
local maxfill = 1024
-- The private table of functions
local library = {}
-- Functions and modifiers that can only be invoked in first position
local static_iface = {}
--[[ Private functions ]]--
---------------------------
-- Create a new context
local function context_new (child_frame)
local main_frame = child_frame:getParent()
return {
frame = main_frame,
opipe = child_frame.args,
oparams = main_frame.args,
firstposonly = static_iface,
iterfunc = pairs,
sorttype = 0,
n_parents = 0,
n_children = 0,
n_available = maxfill
}
end
-- Move to the next action within the user-given list
local function context_iterate (ctx, n_forward)
local nextfn
if ctx.pipe[n_forward] ~= nil then
nextfn = ctx.pipe[n_forward]:match'^%s*(.*%S)'
end
if nextfn == nil then error(modulename ..
': You must specify a function to call', 0) end
if library[nextfn] == nil then
if ctx.firstposonly[nextfn] == nil then error(modulename ..
': The function ‘' .. nextfn .. '’ does not exist', 0)
else error(modulename .. ': The ‘' .. nextfn ..
'’ directive can only appear in first position', 0)
end
end
remove_numeric_keys(ctx.pipe, 1, n_forward)
return library[nextfn]
end
-- Main loop
local function main_loop (ctx, start_with)
local fn = start_with
repeat fn = fn(ctx) until not fn
if ctx.n_parents > 0 then error(modulename ..
': One or more ‘merging_substack’ directives are missing', 0) end
if ctx.n_children > 0 then error(modulename ..
', For some of the snapshots either the ‘flushing’ directive is missing or a group has not been properly closed with ‘merging_substack’', 0) end
end
-- Load a `setting`-like directive string into the `dest` table
local function set_strings_from_opts (dest, opts, start_from)
local cmd
if opts[start_from] == nil then return start_from - 1 end
cmd = opts[start_from]:gsub('%s+', ''):gsub('/+', '/')
:match'^/*(.*[^/])'
if cmd == nil then return start_from end
local vname, chr
local amap, sep, argc = {}, string.byte('/'), start_from + 1
for idx = 1, #cmd do
chr = cmd:byte(idx)
if chr == sep then
for key, val in ipairs(amap) do
dest[val], amap[key] = opts[argc], nil
end
argc = argc + 1
else
vname = memoryslots[string.char(chr)]
if vname == nil then error(modulename ..
', ‘setting’: Unknown slot ‘' ..
string.char(chr) .. '’', 0) end
table.insert(amap, vname)
end
end
for key, val in ipairs(amap) do dest[val] = opts[argc] end
return argc
end
-- Add a new stack of parameters to `ctx.children`
local function new_substack (ctx)
local currsnap, newparams = ctx.n_children + 1, {}
if ctx.children == nil then ctx.children = { newparams }
else ctx.children[currsnap] = newparams end
ctx.n_children = currsnap
return newparams
end
-- Parse a raw argument containing a `sortfunctions` directive, or
-- `'without_sorting'`, or `nil`
local function load_sort_opt (raw_arg)
if raw_arg == nil then return nil, 1, false end
local trarg = raw_arg:match'^%s*(.-)%s*$'
if trarg == 'without_sorting' then return nil, 2, false, trarg end
local tmp = sortfunctions[trarg]
if tmp == nil then return nil, 1, false, trarg end
return tmp or nil, 2, true, trarg
end
-- Parse optional user arguments of type `...|[let/use]|[...]|[let/use]|[...]|
-- [number of additional parameters]|[parameter 1]|[parameter 2]|[...]`
local function load_child_opts (src, start_from, append_after, params)
local tnamed, tmp1, tmp2
local pin, tbl, mem = start_from, {}, {}
while src[pin] ~= nil and src[pin + 1] ~= nil do
tmp1 = src[pin]:match'^%s*(.*%S)'
if tmp1 == 'let' and src[pin + 2] ~= nil then
tmp1 = get_parameter_name(src[pin + 1])
mem[tmp1], tbl[tmp1], pin = nil, src[pin + 2], pin + 3
--[[
elseif tmp1 == 'expose' then
tmp1 = get_parameter_name(src[pin + 1])
tmp2 = params[tmp1]
mem[tmp1], tbl[tmp1], pin = tmp2, tmp2, pin + 2
]]--
elseif tmp1 == 'use' and src[pin + 2] ~= nil then
tmp1 = get_parameter_name(src[pin + 2])
tmp2 = params[tmp1]
mem[tmp1], tbl[get_parameter_name(src[pin + 1])], pin =
tmp2, tmp2, pin + 3
else break end
end
local tnew = copy_or_ref_table(params, next(mem) == nil)
for key in pairs(mem) do tnew[key] = nil end
if pin ~= start_from then tnamed, tbl = tbl, {} end
tmp1 = tonumber(src[pin])
if tmp1 ~= nil and math.floor(tmp1) == tmp1 then
if tmp1 < 0 then tmp1 = -1 end
tmp2 = append_after - pin
for idx = pin + 1, pin + tmp1 do tbl[idx + tmp2] = src[idx] end
pin = pin + tmp1 + 1
end
if tnamed ~= nil then
for key, val in pairs(tnamed) do tbl[key] = val end
end
return tbl, pin, tnew, mem
end
-- Load the optional arguments of some of the `mapping_*` and `renaming_*`
-- class of modifiers
local function load_callback_opts (src, n_skip, default_style, params)
local style, shf
local tmp = src[n_skip + 1]
if tmp ~= nil then style = mapping_styles[tmp:match'^%s*(.-)%s*$'] end
if style == nil then style, shf = default_style, n_skip - 1
else shf = n_skip end
local n_exist, karg, varg = style[3], style[4], style[5]
tmp = style[6]
if tmp > -1 then
karg = src[tmp + shf]:match'^%s*(.-)%s*$'
if karg == '0' or karg:find'^%-?[1-9]%d*$' ~= nil then
karg = tonumber(karg)
n_exist = math.max(n_exist, karg)
end
end
tmp = style[7]
if tmp > -1 then
varg = src[tmp + shf]:match'^%s*(.-)%s*$'
if varg == '0' or varg:find'^%-?[1-9]%d*$' ~= nil then
varg = tonumber(varg)
n_exist = math.max(n_exist, varg)
end
end
local dest, argc, tnew, mem = load_child_opts(src, style[2] + shf,
n_exist, params)
tmp = style[1]
if (tmp == 3 or tmp == 2) and dest[karg] ~= nil then
tmp = tmp - 2 end
if (tmp == 3 or tmp == 1) and dest[varg] ~= nil then
tmp = tmp - 1 end
return dest, argc, tmp, karg, varg, tnew, mem
end
-- Parse the arguments of some of the `mapping_*` and `renaming_*` class of
-- modifiers
local function load_replace_args (opts, whoami)
if opts[1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No pattern string was given', 0) end
if opts[2] == nil then error(modulename ..
', ‘' .. whoami .. '’: No replacement string was given', 0) end
local ptn, repl, nmax, argc = opts[1], opts[2], tonumber(opts[3]), 3
if nmax ~= nil or (opts[3] or ''):match'^%s*$' ~= nil then argc = 4 end
local flg = opts[argc]
if flg ~= nil then flg = mkeywords[flg:match'^%s*(.-)%s*$'] end
if flg == 0 then flg = nil elseif flg ~= nil then argc = argc + 1 end
return ptn, repl, nmax, flg, argc, (nmax ~= nil and nmax < 1) or
(flg == 3 and ptn == repl)
end
-- Parse the arguments of the `with_*_matching` class of modifiers
local function load_pattern_args (opts, whoami)
local keyw
local ptns, state, nptns, cnt = {}, 0, 0, 1
for _, val in ipairs(opts) do
if state == 0 then
nptns, state = nptns + 1, -1
ptns[nptns] = { val, false, false }
else
keyw = val:match'^%s*(.*%S)'
if keyw == nil or mkeywords[keyw] == nil or (
state > 0 and mkeywords[keyw] > 0
) then break
else
state = mkeywords[keyw]
if state > 1 then ptns[nptns][2] = true end
if state == 3 then ptns[nptns][3] = true end
end
end
cnt = cnt + 1
end
if state == 0 then error(modulename .. ', ‘' .. whoami ..
'’: No pattern was given', 0) end
return ptns, nptns, cnt
end
-- Load the optional arguments of the `parsing`, `reinterpreting` and
-- `evaluating` modifiers
local function load_parse_opts (opts, start_from, isp, psp)
local tmp
local optslots, noptslots, argc, trimn, trimu, iplain, pplain =
{ true, true, true }, 3, start_from, true, false, true, true
repeat
noptslots, tmp = noptslots - 1, opts[argc]
if tmp == nil then break end
tmp = tmp:match'^%s*(.-)%s*$'
if optslots[1] ~= nil and trim_parse_opts[tmp] ~= nil then
tmp = trim_parse_opts[tmp]
trimn, trimu, optslots[1] = tmp[1], tmp[2], nil
elseif optslots[2] ~= nil and isep_parse_opts[tmp] ~= nil then
argc = argc + 1
iplain, isp, optslots[2] = isep_parse_opts[tmp],
opts[argc], nil
elseif optslots[3] ~= nil and psep_parse_opts[tmp] ~= nil then
argc = argc + 1
pplain, psp, optslots[3] = psep_parse_opts[tmp],
opts[argc], nil
else break end
argc = argc + 1
until noptslots < 1
return isp, iplain, psp, pplain, trimn, trimu, argc
end
-- Map parameters' values using a custom callback and a referenced table
local value_maps = {
[0] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do tbl[key] = fn() end
end,
[1] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[varg] = val
tbl[key] = fn()
end
end,
[2] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do
margs[karg] = key
tbl[key] = fn()
end
end,
[3] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[karg], margs[varg] = key, val
tbl[key] = fn()
end
end
}
-- Private table for `map_names()`
local name_thieves = {
[0] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[1] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[varg] = val
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[2] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg] = key
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[3] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg], rargs[varg] = key, val
steal_if_renamed(val, tbl, key, cache, fn())
end
end
}
-- Map parameters' names using a custom callback and a referenced table
local function map_names (tbl, rargs, karg, varg, looptype, fn)
local cache = {}
name_thieves[looptype](cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(cache) do tbl[key] = val end
end
-- Return a new table that contains `src` regrouped according to the numeric
-- suffixes in its keys
local function make_groups (src)
-- NOTE: `src` might be the original metatable!
local prefix, gid
local groups = {}
for key, val in pairs(src) do
-- `key` must only be a string or a number...
if type(key) == 'string' then
prefix, gid = key:match'^%s*(.-)%s*(%-?%d*)%s*$'
gid = tonumber(gid) or ''
else
prefix, gid = '', key
end
if groups[gid] == nil then groups[gid] = {} end
if prefix == '0' or prefix:find'^%-?[1-9]%d*$' ~= nil then
prefix = tonumber(prefix)
if prefix < 1 then prefix = prefix - 1 end
end
groups[gid][prefix] = val
end
return groups
end
-- Split into parts a string containing the `$#` and `$@` placeholders and
-- return the information as a skeleton table, a canvas table and a length
local function parse_placeholder_string (target)
local idx, s_pos, skel, canvas = 1, 1, {}, {}
local e_pos = string.find(target, '%$[@#]', 1, false)
while e_pos ~= nil do
canvas[idx] = target:sub(s_pos, e_pos - 1)
skel[idx + 1] = target:sub(e_pos, e_pos + 1) == '$@'
idx = idx + 2
s_pos = e_pos + 2
e_pos = string.find(target, '%$[@#]', s_pos, false)
end
if (s_pos > target:len()) then idx = idx - 1
else canvas[idx] = target:sub(s_pos) end
return skel, canvas, idx
end
-- Populate a table by parsing a parameter string (heavy lifting for `parsing`,
-- `reinterpreting` and `evaluating`)
local function parse_parameter_string (tbl, str, isp, ipl, psp, ppl, trn, tru)
local key, val, spos1, spos2, pos1, pos2
local pos3, idx, lenplone = 0, 1, #str + 1
if isp == nil or isp == '' then
if psp == nil or psp == '' then
if tru then tbl[idx] = str:match'^%s*(.-)%s*$'
else tbl[idx] = str end
return idx
end
spos1, spos2 = str:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = str:match'^%s*(.-)%s*$'
else val = str end
idx = idx + 1
else
key = get_parameter_name(str:sub(1, spos1 - 1))
val = str:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
return idx
end
if psp == nil or psp == '' then
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
if tru then val = val:match'^%s*(.-)%s*$' end
tbl[idx], idx = val, idx + 1
until pos2 == nil
return idx
end
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
spos1, spos2 = val:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = val:match'^%s*(.-)%s*$' end
idx = idx + 1
else
key = get_parameter_name(val:sub(1, spos1 - 1))
val = val:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
until pos2 == nil
return idx
end
-- Heavy lifting for `snapshotting` and `remembering`
local function make_child (ctx, src, whoami)
local len = tonumber(ctx.pipe[1])
if len == nil or len == 0 then
local stack = new_substack(ctx)
for key, val in pairs(src) do stack[key] = val end
return len == nil and 1 or 2
end
if len < 0 or math.floor(len) ~= len then error(modulename ..
', ‘' .. whoami .. '’: The number of parameters to copy must be an integer greater than zero', 0) end
copy_table_maxn(new_substack(ctx), src, len)
return 2
end
-- Heavy lifting for `setting_by_flushing`, `combining` and `combining_values`
local function set_strings_from_substack (ctx, dest, whoami)
if ctx.n_children < 1 then error(modulename ..
', ‘' .. whoami .. '’: There are no substacks to flush', 0) end
local currsnap = ctx.n_children
local stack = ctx.children[currsnap]
for key, val in pairs(memoryslots) do
if stack[key] ~= nil then dest[val] = stack[key] end
end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
end
-- Heavy lifting for `combining` and `combining_values`
local function combine_parameters (ctx, keyval_fn, whoami)
-- NOTE: `ctx.params` might be the original metatable! This function
-- MUST create a copy of it before returning
local opts = ctx.pipe
if ctx.pipe[1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No parameter name was provided', 0) end
local argc
local tbl, vars = ctx.params, {}
local sortfn, varsarg0, do_sort, tmp = load_sort_opt(opts[2])
if varsarg0 == 2 then tmp = opts[3] and opts[3]:match'^%s*(.-)%s*$' end
if tmp == 'with_flushed_glue' then
varsarg0 = varsarg0 + 1
argc = set_strings_from_opts(vars, opts, varsarg0 + 1)
set_strings_from_substack(ctx, vars, whoami)
else
if tmp == 'without_flushed_glue' then varsarg0 = varsarg0 + 1 end
argc = set_strings_from_opts(vars, opts, varsarg0 + 1)
end
if argc < varsarg0 then error(modulename ..
', ‘' .. whoami .. '’: No setting directive was given', 0) end
if next(tbl) == nil then
if vars.ifngiven ~= nil then ctx.params =
{ [get_parameter_name(ctx.pipe[1])] = vars.ifngiven }
elseif tbl == ctx.oparams then ctx.params = {} end
return argc
end
local cache, len
if do_sort then
local words
cache, words, len, tmp = get_key_list_sorted(tbl, sortfn)
for idx = 1, tmp do cache[len + idx] = words[idx] end
len = len + tmp
else
len, cache = 0, {}
for key in pairs(tbl) do
len = len + 1
cache[len] = key
end
end
local pmap, nss, kvs, pps = {}, 0, vars.pairsep or '', vars.itersep or ''
for idx = 1, len do
tmp, pmap[nss + 1] = cache[idx], pps
pmap[nss + 2] = keyval_fn(tmp, tbl[tmp], kvs)
nss = nss + 2
end
tmp = vars.oxfordsep or vars.lastsep
if tmp ~= nil and nss > 4 then pmap[nss - 1] = tmp
elseif nss > 2 and vars.lastsep ~= nil then
pmap[nss - 1] = vars.lastsep
end
pmap[1] = vars.header or ''
if vars.footer ~= nil then pmap[nss + 1] = vars.footer end
ctx.params = { [get_parameter_name(ctx.pipe[1])] = table.concat(pmap) }
return argc
end
-- Concatenate the numeric keys from the table of parameters to the numeric
-- keys from the table of options; non-numeric keys from the table of options
-- will prevail over colliding non-numeric keys from the table of parameters
local function concat_params (ctx)
local retval, tbl, nmax = {}, ctx.params, table.maxn(ctx.pipe)
if ctx.subset == 1 then
-- We need only the sequence
for key, val in ipairs(tbl) do retval[key + nmax] = val end
else
if ctx.subset == -1 then
for key in ipairs(tbl) do tbl[key] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
retval[key + nmax] = val
else retval[key] = val end
end
end
for key, val in pairs(ctx.pipe) do retval[key] = val end
return retval
end
-- Flush the parameters by calling a custom function for each value (after this
-- function has been invoked `ctx.params` will be no longer usable)
local function flush_params (ctx, fn)
local tbl = ctx.params
if ctx.subset == 1 then
for key, val in ipairs(tbl) do fn(key, val) end
return
end
if ctx.subset == -1 then
for key, val in ipairs(tbl) do tbl[key] = nil end
end
if ctx.sorttype > 0 then
local nums, words, nn, nw = get_key_list_sorted(tbl, natural_sort)
if ctx.sorttype == 2 then
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
return
end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
return
end
if ctx.subset ~= -1 then
for key, val in ipairs(tbl) do
fn(key, val)
tbl[key] = nil
end
end
for key, val in pairs(tbl) do fn(key, val) end
end
-- Flush the parameters by calling one of two custom functions for each value
-- (after this function has been invoked `ctx.params` will be no longer usable)
local function mixed_flush_params (ctx, fn_seq, fn_oth)
if ctx.subset == 1 then
for key, val in ipairs(ctx.params) do fn_seq(key, val) end
return
end
if ctx.subset == -1 then
flush_params(ctx, fn_oth)
return
end
local tbl = ctx.params
if ctx.sorttype > 0 then
local nums, words, nn, nw = get_key_list_sorted(tbl, natural_sort)
local sequence = {}
for key, val in ipairs(tbl) do sequence[key] = val end
if ctx.sorttype == 2 then
for idx = 1, nw do fn_oth(words[idx], tbl[words[idx]]) end
end
for idx = 1, nn do
if sequence[nums[idx]] then fn_seq(nums[idx], sequence[nums[idx]])
else fn_oth(nums[idx], tbl[nums[idx]]) end
end
if ctx.sorttype ~= 2 then
for idx = 1, nw do fn_oth(words[idx], tbl[words[idx]]) end
end
return
end
for key, val in ipairs(tbl) do
fn_seq(key, val)
tbl[key] = nil
end
for key, val in pairs(tbl) do fn_oth(key, val) end
end
-- Finalize and return a concatenated list
local function finalize_and_return_concatenated_list (ctx, lst, len, modsize)
if len > 0 then
local tmp = ctx.oxfordsep or ctx.lastsep
if tmp ~= nil and len > modsize * 2 then
lst[len - modsize + 1] = tmp
elseif len > modsize and ctx.lastsep ~= nil then
lst[len - modsize + 1] = ctx.lastsep
end
lst[1] = ctx.header or ''
if ctx.footer ~= nil then lst[len + 1] = ctx.footer end
ctx.text = table.concat(lst)
else ctx.text = ctx.ifngiven or '' end
end
--- ---
--- PUBLIC ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Modifiers ]]--
-------------------
-- Syntax: #invoke:params|sequential|pipe to
library.sequential = function (ctx)
if ctx.subset == 1 then error(modulename ..
': The ‘sequential’ directive has been provided more than once', 0) end
if ctx.subset == -1 then error(modulename ..
': The two directives ‘non-sequential’ and ‘sequential’ are in contradiction with each other', 0) end
if ctx.sorttype > 0 then error(modulename ..
': The ‘all_sorted’ and ‘reassorted’ directives are redundant when followed by ‘sequential’', 0) end
ctx.iterfunc, ctx.subset = ipairs, 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|non-sequential|pipe to
library['non-sequential'] = function (ctx)
if ctx.subset == -1 then error(modulename ..
': The ‘non-sequential’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘non-sequential’ are in contradiction with each other', 0) end
ctx.iterfunc, ctx.subset = pairs, -1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|all_sorted|pipe to
library.all_sorted = function (ctx)
if ctx.sorttype == 1 then error(modulename ..
': The ‘all_sorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘all_sorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 2 then error(modulename ..
': The two directives ‘reassorted’ and ‘sequential’ are in contradiction with each other', 0) end
ctx.sorttype = 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|reassorted|pipe to
library.reassorted = function (ctx)
if ctx.sorttype == 2 then error(modulename ..
': The ‘reassorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘reassorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘reassorted’ are in contradiction with each other', 0) end
ctx.sorttype = 2
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|setting|directives|...|pipe to
library.setting = function (ctx)
local argc = set_strings_from_opts(ctx, ctx.pipe, 1)
if argc < 2 then error(modulename ..
', ‘setting’: No directive was given', 0) end
return context_iterate(ctx, argc + 1)
end
-- Syntax: #invoke:params|scoring|new parameter name|[container]|pipe to
library.scoring = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘scoring’: No parameter name was provided', 0) end
local tmp
local retval, opts = 0, ctx.pipe
for _ in pairs(ctx.params) do retval = retval + 1 end
if opts[2] ~= nil then tmp = opts[2]:match'^%s*(.*%S)' end
if tmp == 'in_substack' then
new_substack(ctx)[get_parameter_name(opts[1])] = tostring(retval)
return context_iterate(ctx, 3)
end
ctx.params[get_parameter_name(opts[1])] = tostring(retval)
return context_iterate(ctx, tmp == 'here' and 3 or 2)
end
-- Syntax: #invoke:params|squeezing|pipe to
library.squeezing = function (ctx)
local store, indices, tbl, newlen = {}, {}, ctx.params, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
newlen = newlen + 1
indices[newlen], store[key], tbl[key] = key, val, nil
end
end
table.sort(indices)
for idx = 1, newlen do tbl[idx] = store[indices[idx]] end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|filling_the_gaps|pipe to
library.filling_the_gaps = function (ctx)
local newval, tbl, tmp, nmin, nmax, nnums =
ctx.pipe[1], ctx.params, {}, 1, nil, -1
if newval == nil then error(modulename ..
', ‘filling_the_gaps’: No value was provided', 0) end
for key, val in pairs(tbl) do
if type(key) == 'number' then
if nmax == nil then
if key < nmin then nmin = key end
nmax = key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
tmp[key], nnums = val, nnums + 1
end
end
if nmax ~= nil and nmax - nmin > nnums then
ctx.n_available = ctx.n_available + nmin + nnums - nmax
if ctx.n_available < 0 then error(modulename ..
', ‘filling_the_gaps’: It is possible to fill at most ' ..
tostring(maxfill) .. ' parameters', 0) end
for idx = nmin, nmax, 1 do tbl[idx] = newval end
for key, val in pairs(tmp) do tbl[key] = val end
end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|clearing|pipe to
library.clearing = function (ctx)
local tbl, numerics = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
end
end
for key, val in ipairs(numerics) do tbl[key] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|cutting|left cut|right cut|pipe to
library.cutting = function (ctx)
local lcut = tonumber(ctx.pipe[1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cutting’: Left cut must be an integer number', 0) end
local rcut = tonumber(ctx.pipe[2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cutting’: Right cut must be an integer number', 0) end
local tbl = ctx.params
local len = #tbl
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
local tot = lcut + rcut
if tot > 0 then
local cache = {}
if tot >= len then
for key in ipairs(tbl) do tbl[key] = nil end
tot = len
else
for idx = len - rcut + 1, len, 1 do tbl[idx] = nil end
for idx = 1, lcut, 1 do tbl[idx] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
if key > len then cache[key - tot] = val
else cache[key - lcut] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|cropping|left crop|right crop|pipe to
library.cropping = function (ctx)
local lcut = tonumber(ctx.pipe[1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cropping’: Left crop must be an integer number', 0) end
local rcut = tonumber(ctx.pipe[2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cropping’: Right crop must be an integer number', 0) end
local tbl = ctx.params
local nmin, nmax
for key in pairs(tbl) do
if type(key) == 'number' then
if nmin == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
if nmin ~= nil then
local len = nmax - nmin + 1
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
if lcut + rcut - len > -1 then
for key in pairs(tbl) do
if type(key) == 'number' then tbl[key] = nil end
end
elseif lcut + rcut > 0 then
for idx = nmax - rcut + 1, nmax do tbl[idx] = nil end
for idx = nmin, nmin + lcut - 1 do tbl[idx] = nil end
local lshift = nmin + lcut - 1
if lshift > 0 then
for idx = lshift + 1, nmax, 1 do
tbl[idx - lshift], tbl[idx] =
tbl[idx], nil
end
end
end
end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|purging|start offset|length|pipe to
library.purging = function (ctx)
local idx = tonumber(ctx.pipe[1])
if idx == nil or math.floor(idx) ~= idx then error(modulename ..
', ‘purging’: Start offset must be an integer number', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘purging’: Length must be an integer number', 0) end
local tbl = ctx.params
if len < 1 then
len = len + table.maxn(tbl)
if idx > len then return context_iterate(ctx, 3) end
len = len - idx + 1
end
ctx.params = copy_table_reduced(tbl, idx, len)
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|backpurging|start offset|length|pipe to
library.backpurging = function (ctx)
local last = tonumber(ctx.pipe[1])
if last == nil or math.floor(last) ~= last then error(modulename ..
', ‘backpurging’: Start offset must be an integer number', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘backpurging’: Length must be an integer number', 0) end
local idx
local tbl = ctx.params
if len > 0 then
idx = last - len + 1
else
for key in pairs(tbl) do
if type(key) == 'number' and (idx == nil or
key < idx) then idx = key end
end
if idx == nil then return context_iterate(ctx, 3) end
idx = idx - len
if last < idx then return context_iterate(ctx, 3) end
len = last - idx + 1
end
ctx.params = copy_table_reduced(ctx.params, idx, len)
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|shifting|addend|pipe to
library.shifting = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local nshift = tonumber(ctx.pipe[1])
if nshift == nil or nshift == 0 or math.floor(nshift) ~= nshift then
error(modulename .. ', ‘shifting’: A non-zero integer number must be provided', 0) end
local tbl = {}
for key, val in pairs(ctx.params) do
if type(key) == 'number' then tbl[key + nshift] = val
else tbl[key] = val end
end
ctx.params = tbl
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|reversing_numeric_names|pipe to
library.reversing_numeric_names = function (ctx)
local tbl, numerics, nmax = ctx.params, {}, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
if key > nmax then nmax = key end
end
end
for key, val in pairs(numerics) do tbl[nmax - key + 1] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|pivoting_numeric_names|pipe to
--[[
library.pivoting_numeric_names = function (ctx)
local tbl = ctx.params
local shift = #tbl + 1
if shift < 2 then return library.reversing_numeric_names(ctx) end
local numerics = {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key] = val
tbl[key] = nil
end
end
for key, val in pairs(numerics) do tbl[shift - key] = val end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|mirroring_numeric_names|pipe to
--[[
library.mirroring_numeric_names = function (ctx)
local nmax, nmin
local tbl, numerics = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key] = val
tbl[key] = nil
if nmax == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
for key, val in pairs(numerics) do tbl[nmax + nmin - key] = val end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|swapping_numeric_names|pipe to
--[[
library.swapping_numeric_names = function (ctx)
local tmp
local tbl, cache, nsize = ctx.params, {}, 0
for key in pairs(tbl) do
if type(key) == 'number' then
nsize = nsize + 1
cache[nsize] = key
end
end
table.sort(cache)
for idx = math.floor(nsize / 2), 1, -1 do
tmp = tbl[cache[idx] ]
tbl[cache[idx] ] = tbl[cache[nsize - idx + 1] ]
tbl[cache[nsize - idx + 1] ] = tmp
end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|sorting_sequential_values|[criterion]|pipe to
library.sorting_sequential_values = function (ctx)
local sortfn
if ctx.pipe[1] ~= nil then
sortfn = sortfunctions[ctx.pipe[1]:match'^%s*(.-)%s*$']
end
if sortfn then table.sort(ctx.params, sortfn)
else table.sort(ctx.params) end -- i.e. either `false` or `nil`
if sortfn == nil then return context_iterate(ctx, 1) end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|splicing|[add to position]|position|increment|
-- [number of elements to write]|...|pipe to
library.splicing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp2, argc, pos, refp
local opts, tbl = ctx.pipe, ctx.params
local tmp1 = opts[1]
if tmp1 ~= nil then
tmp2 = tonumber(tmp1)
if tmp2 == nil or math.floor(tmp2) ~= tmp2 then
pos, argc, tmp2 = tonumber(opts[2]), 4,
tmp1:match'^%s*(.*%S)'
if tmp2 ~= nil then
refp = position_references[tmp2]
if refp == nil then error(modulename ..
', ‘splicing’: ‘' .. tostring(tmp2) ..
'’ is not a valid first argument', 0) end
else refp = 0 end
else pos, argc, refp = tmp2, 3, 0 end
else pos, argc, refp = tonumber(opts[2]), 4, 0 end
if pos == nil or math.floor(pos) ~= pos then error(modulename ..
', ‘splicing’: The position must be an integer number', 0) end
local len = tonumber(opts[argc - 1])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘splicing’: The increment must be an integer number', 0) end
local insn = tonumber(opts[argc])
if len == 0 and (insn == nil or insn < 1) then error(modulename ..
', ‘splicing’: When the increment is zero the number of elements to write cannot be zero', 0) end
if refp == 2 then
for _ in ipairs(tbl) do pos = pos + 1 end
refp = 0
end
tmp1, tmp2 = nil, nil
if refp ~= 0 or len ~= 0 then
for key, val in pairs(tbl) do
if type(key) == 'number' then
if tmp1 == nil then tmp1, tmp2 = key, key
elseif key < tmp1 then tmp1 = key
elseif key > tmp2 then tmp2 = key end
end
end
end
if tmp2 == nil then len = 0
elseif refp == 3 then pos = pos + tmp2
elseif refp == 1 then pos = pos + tmp1 end
if len > 0 and pos + len > tmp1 and pos <= tmp2 then
tbl = copy_table_expanded(tbl, pos, len)
elseif len < 0 and pos - len > tmp1 and pos <= tmp2 then
tbl = copy_table_reduced(tbl, pos, -len)
else tbl = copy_or_ref_table(tbl, tbl ~= ctx.oparams) end
ctx.params = tbl
if insn == nil or insn < 0 or math.floor(insn) ~= insn then
return context_iterate(ctx, argc)
end
tmp1 = argc - pos + 1
for key = pos, pos + insn - 1 do tbl[key] = opts[key + tmp1] end
return context_iterate(ctx, argc + insn + 1)
end
-- Syntax: #invoke:params|imposing|name|value|pipe to
library.imposing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘imposing’: Missing parameter name to impose', 0) end
ctx.params[get_parameter_name(ctx.pipe[1])] = ctx.pipe[2]
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|providing|name|value|pipe to
library.providing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘providing’: Missing parameter name to provide', 0) end
local key = get_parameter_name(ctx.pipe[1])
if ctx.params[key] == nil then ctx.params[key] = ctx.pipe[2] end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|reassigning|source|destination|[mode]|pipe to
library.reassigning = function (ctx)
local opts, tbl = ctx.pipe, ctx.params
if opts[1] == nil then error(modulename ..
', ‘reassigning’: Missing source parameter', 0) end
if opts[2] == nil then error(modulename ..
', ‘reassigning’: Missing destination parameter', 0) end
local mode, argc
local src = get_parameter_name(opts[1])
local val = tbl[src]
if opts[3] ~= nil then mode = a_modes[opts[3]:match'^%s*(.-)%s*$'] end
if mode == nil then mode, argc = 0, 3 else argc = 4 end
if val == nil and mode > 1 then return context_iterate(ctx, argc) end
local dest = get_parameter_name(opts[2])
local tmp = tbl[dest] == nil
if mode % 2 == 0 or (mode == 7 and tmp) then tbl[src] = nil end
if tmp or mode < 4 then tbl[dest] = val end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|discarding|name|[how many]|pipe to
library.discarding = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘discarding’: Missing parameter name to discard', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil then
ctx.params[get_parameter_name(ctx.pipe[1])] = nil
return context_iterate(ctx, 2)
end
local key = tonumber(ctx.pipe[1])
if key == nil or math.floor(key) ~= key then error(modulename ..
', ‘discarding’: A range was provided, but the initial parameter name is not an integer number', 0) end
if len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘discarding’: A range can only be an integer number greater than zero', 0) end
for idx = key, key + len - 1 do ctx.params[idx] = nil end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|excluding_non-numeric_names|pipe to
library['excluding_non-numeric_names'] = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) ~= 'number' then tmp[key] = nil end
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|excluding_numeric_names|pipe to
library.excluding_numeric_names = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) == 'number' then tmp[key] = nil end
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|with_name_matching|target 1|[plain flag 1]|[or]
-- |[target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_name_matching = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp, ptn
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_name_matching')
local tbl, newparams = ctx.params, {}
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
tmp = ptn[1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tmp = tonumber(tmp)
end
newparams[tmp] = tbl[tmp]
else
for key, val in pairs(tbl) do
if tostring(key):find(ptn[1], 1, ptn[2]) then
newparams[key] = val
end
end
end
end
ctx.params = newparams
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_name_not_matching|target 1|[plain flag 1]
-- |[and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_name_not_matching = function (ctx)
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_name_not_matching')
local tbl = ctx.params
if nptns == 1 and targets[1][3] then
local tmp = targets[1][1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tbl[tonumber(tmp)] = nil
else tbl[tmp] = nil end
return context_iterate(ctx, argc)
end
local yesmatch, ptn
for key in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if tostring(key) ~= ptn[1] then
yesmatch = false
break
end
elseif not tostring(key):find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_value_matching|target 1|[plain flag 1]|[or]
-- |[target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_value_matching = function (ctx)
local nomatch, ptn
local tbl = ctx.params
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_value_matching')
for key, val in pairs(tbl) do
nomatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val == ptn[1] then
nomatch = false
break
end
elseif val:find(ptn[1], 1, ptn[2]) then
nomatch = false
break
end
end
if nomatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_value_not_matching|target 1|[plain flag 1]
-- |[and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_value_not_matching = function (ctx)
local yesmatch, ptn
local tbl = ctx.params
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_value_not_matching')
for key, val in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val ~= ptn[1] then
yesmatch = false
break
end
elseif not val:find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|keeping_at_most|number of parameters to pick|pipe to
library.keeping_at_most = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local len = tonumber(ctx.pipe[1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘keeping_at_most’: The number of parameters to keep must be an integer greater than zero', 0) end
ctx.params = copy_table_maxn({}, ctx.params, len)
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|trimming_values|pipe to
library.trimming_values = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:match'^%s*(.-)%s*$' end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_to_lowercase|pipe to
library.mapping_to_lowercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:lower() end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_to_uppercase|pipe to
library.mapping_to_uppercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:upper() end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.mapping_by_calling = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘mapping_by_calling’: No template name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.values_only, ctx.params)
local model = { title = tname, args = margs }
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_invoking|module name|function name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_invoking = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘mapping_by_invoking’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘mapping_by_invoking’: No function name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 2, mapping_styles.values_only, ctx.params)
local model = { title = 'Module:' .. mname, args = margs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
value_maps[looptype](tbl, margs, karg, varg, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_magic = function (ctx)
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘mapping_by_magic’: No parser function was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.values_only, ctx.params)
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:callParserFunction(magic, margs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.mapping_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die =
load_replace_args(ctx.pipe, 'mapping_by_replacing')
if die then return context_iterate(ctx, argc) end
local tbl = ctx.params
if flg == 3 then
for key, val in pairs(tbl) do
if val == ptn then tbl[key] = repl end
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
for key, val in pairs(tbl) do
tbl[key] = val:gsub(ptn, repl, nmax)
end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_mixing|mixing string|pipe to
library.mapping_by_mixing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘mapping_by_mixing’: No mixing string was provided', 0) end
local tbl, mix = ctx.params, ctx.pipe[1]
if mix == '$#' then
for key in pairs(tbl) do tbl[key] = tostring(key) end
return context_iterate(ctx, 2)
end
local skel, cnv, n_parts = parse_placeholder_string(mix)
for key, val in pairs(tbl) do
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
tbl[key] = table.concat(cnv)
end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|mapping_to_names|pipe to
--[[
library.mapping_to_names = function (ctx)
local tbl = ctx.params
for key in pairs(tbl) do tbl[key] = tostring(key) end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|renaming_to_lowercase|pipe to
library.renaming_to_lowercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:lower()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|renaming_to_uppercase|pipe to
library.renaming_to_uppercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:upper()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|renaming_to_sequence|[sort order]|pipe to
library.renaming_to_sequence = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache, len
local tbl = ctx.params
local sortfn, argc, do_sort = load_sort_opt(ctx.pipe[1])
if do_sort then
local words, wl
cache, words, len, wl = get_key_list_sorted(tbl, sortfn)
for idx = 1, len do cache[idx] = tbl[cache[idx]] end
for idx = 1, wl do cache[len + idx] = tbl[words[idx]] end
else
len, cache = 0, {}
for _, val in pairs(tbl) do
len = len + 1
cache[len] = val
end
end
ctx.params = cache
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.renaming_by_calling = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘renaming_by_calling’: No template name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.names_only, ctx.params)
local model = { title = tname, args = rargs }
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_invoking|module name|function
-- name|[call style]|[let/use]|[...]|[let/use]|[...]|[number of
-- additional arguments]|[argument 1]|[argument 2]|[...]|[argument
-- N]|pipe to
library.renaming_by_invoking = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘renaming_by_invoking’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘renaming_by_invoking’: No function name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 2, mapping_styles.names_only, ctx.params)
local model = { title = 'Module:' .. mname, args = rargs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘renaming_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
map_names(tbl, rargs, karg, varg, looptype, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.renaming_by_magic = function (ctx)
local opts = ctx.pipe
local magic
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘renaming_by_magic’: No parser function was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.names_only, ctx.params)
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:callParserFunction(magic, rargs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.renaming_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die =
load_replace_args(ctx.pipe, 'renaming_by_replacing')
if die then return context_iterate(ctx, argc) end
local tbl = ctx.params
if flg == 3 then
ptn = get_parameter_name(ptn)
local val = tbl[ptn]
if val ~= nil then
tbl[ptn], tbl[get_parameter_name(repl)] = nil, val
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
local cache = {}
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache,
tostring(key):gsub(ptn, repl, nmax))
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_mixing|mixing string|pipe to
library.renaming_by_mixing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
if ctx.pipe[1] == nil then error(modulename ..
', ‘renaming_by_mixing’: No mixing string was provided', 0) end
local mix = ctx.pipe[1]:match'^%s*(.-)%s*$'
local cache = {}
if mix == '$@' then
for _, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = val
end
else
local skel, canvas, n_parts = parse_placeholder_string(mix)
for key, val in pairs(ctx.params) do
for idx = 2, n_parts, 2 do
if skel[idx] then canvas[idx] = val
else canvas[idx] = tostring(key) end
end
cache[get_parameter_name(table.concat(canvas))] = val
end
end
ctx.params = cache
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|renaming_to_values|pipe to
--[[
library.renaming_to_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for _, val in pairs(ctx.params) do cache[val] = val end
ctx.params = cache
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|grouping_by_calling|template
-- name|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.grouping_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp, argc, tbl, mem = load_child_opts(ctx.pipe, 2, 0, ctx.params)
local gargs = {}
for key, val in pairs(tmp) do
if type(key) == 'number' and key < 1 then gargs[key - 1] = val
else gargs[key] = val end
end
tmp = ctx.pipe[1]
if tmp ~= nil then tmp = tmp:match'^%s*(.*%S)' end
if tmp == nil then error(modulename ..
', ‘grouping_by_calling’: No template name was provided', 0) end
local model = { title = tmp }
local groups = make_groups(tbl)
for gid, group in pairs(groups) do
for key, val in pairs(gargs) do group[key] = val end
group[0], model.args = gid, group
groups[gid] = ctx.frame:expandTemplate(model)
end
for key, val in pairs(mem) do groups[key] = val end
ctx.params = groups
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|parsing|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.parsing = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘parsing’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '|', '=')
parse_parameter_string(ctx.params, opts[1], isep, iplain, psep, pplain,
trimnamed, trimunnamed)
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|reinterpreting|parameter to reinterpret|[trim
-- flag]|[iteration delimiter setter]|[...]|[key-value delimiter
-- setter]|[...]|pipe to
library.reinterpreting = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘reinterpreting’: No parameter to reinterpret was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '|', '=')
local tbl, tmp = ctx.params, get_parameter_name(opts[1])
local str = tbl[tmp]
if str ~= nil then
tbl[tmp] = nil
parse_parameter_string(tbl, str, isep, iplain, psep, pplain,
trimnamed, trimunnamed)
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|evaluating|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.evaluating = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘evaluating’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '!', ':')
if opts[1]:match'^%s*(.*%S)' == nil then
ctx.pipe = copy_or_ref_table(opts, opts ~= ctx.opipe)
return context_iterate(ctx, argc)
end
local new_opts, cache = {}, {}
local shift = parse_parameter_string(cache, opts[1], isep, iplain,
psep, pplain, trimnamed, trimunnamed) - argc
for key, val in pairs(opts) do
if type(key) ~= 'number' or key < 1 then new_opts[key] = val
elseif key >= argc then new_opts[key + shift] = val end
end
for key, val in pairs(cache) do new_opts[key] = val end
ctx.pipe = new_opts
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mixing_names_and_values|mixing string|pipe to
library.mixing_names_and_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
if ctx.pipe[1] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter names', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter values', 0) end
local tmp
local mix_k = ctx.pipe[1]:match'^%s*(.-)%s*$'
local cache, mix_v = {}, ctx.pipe[2]
if mix_k == '$@' and mix_v == '$@' then
for _, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = val
end
elseif mix_k == '$@' and mix_v == '$#' then
for key, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = tostring(key)
end
elseif mix_k == '$#' and mix_v == '$#' then
for key in pairs(ctx.params) do cache[key] = tostring(key) end
else
local skel_k, cnv_k, n_parts_k = parse_placeholder_string(mix_k)
local skel_v, cnv_v, n_parts_v = parse_placeholder_string(mix_v)
for key, val in pairs(ctx.params) do
tmp = tostring(key)
for idx = 2, n_parts_k, 2 do
if skel_k[idx] then cnv_k[idx] = val else cnv_k[idx] = tmp end
end
for idx = 2, n_parts_v, 2 do
if skel_v[idx] then cnv_v[idx] = val else cnv_v[idx] = tmp end
end
cache[get_parameter_name(table.concat(cnv_k))] =
table.concat(cnv_v)
end
end
ctx.params = cache
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|swapping_names_and_values|pipe to
--[[
library.swapping_names_and_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do cache[val] = key end
ctx.params = cache
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|combining|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return key .. kvs .. val end,
'combining'
) + 1)
end
-- Syntax: #invoke:params|combining_values|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return val end,
'combining_values'
) + 1)
end
-- Syntax: #invoke:params|combining_by_calling|template name|new parameter
-- name|pipe to
library.combining_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tname = ctx.pipe[1]
if tname ~= nil then tname = tname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_calling’: No template name was provided', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘combining_by_calling’: No parameter name was provided', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[2])] = ctx.frame:expandTemplate{
title = tname,
args = ctx.params
}
}
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|combining_by_invoking|module name|function name|new
-- parameter name|pipe to
library.combining_by_invoking = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local mname = ctx.pipe[1]
if mname ~= nil then mname = mname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_invoking’: No module name was provided', 0) end
local fname = ctx.pipe[2]
if fname ~= nil then fname = fname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_invoking’: No function name was provided', 0) end
if ctx.pipe[3] == nil then error(modulename ..
', ‘combining_by_invoking’: No parameter name was provided', 0) end
local model = { title = 'Module:' .. mname, args = ctx.params }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[3])] =
tostring(mfunc(ctx.frame:newChild(model)))
}
return context_iterate(ctx, 4)
end
-- Syntax: #invoke:params|combining_by_magic|parser function|new parameter
-- name|pipe to
library.combining_by_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local magic = ctx.pipe[1]
if magic ~= nil then magic = magic:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_magic’: No parser function was provided', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘combining_by_magic’: No parameter name was provided', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[2])] =
ctx.frame:callParserFunction(magic, ctx.params)
}
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|snapshotting|[maximum number]|pipe to
library.snapshotting = function (ctx)
return context_iterate(ctx, make_child(ctx, ctx.params, 'snapshotting'))
end
-- Syntax: #invoke:params|remembering|[maximum number]|pipe to
library.remembering = function (ctx)
return context_iterate(ctx, make_child(ctx, ctx.oparams, 'remembering'))
end
-- Syntax: #invoke:params|entering_substack|[new]|pipe to
library.entering_substack = function (ctx)
local tbl, ncurrparent = ctx.params, ctx.n_parents + 1
if ctx.parents == nil then ctx.parents = { tbl }
else ctx.parents[ncurrparent] = tbl end
ctx.n_parents = ncurrparent
if ctx.pipe[1] ~= nil and ctx.pipe[1]:match'^%s*new%s*$' then
ctx.params = {}
return context_iterate(ctx, 2)
end
local currsnap = ctx.n_children
if currsnap > 0 then
ctx.params, ctx.children[currsnap], ctx.n_children =
ctx.children[currsnap], nil, currsnap - 1
else
local newparams = {}
for key, val in pairs(tbl) do newparams[key] = val end
ctx.params = newparams
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|pulling|parameter name|pipe to
library.pulling = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘pulling’: No parameter to pull was provided', 0) end
local tmp = ctx.n_parents
local parent = tmp < 1 and ctx.oparams or ctx.parents[tmp]
tmp = get_parameter_name(opts[1])
if parent[tmp] ~= nil then ctx.params[tmp] = parent[tmp] end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|recalling|parameter name|pipe to
library.recalling = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘recalling’: No parameter to recall was provided', 0) end
local arg = get_parameter_name(opts[1])
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|finding|parameter name|pipe to
--[[
library.finding = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘finding’: No parameter to find was provided', 0) end
local arg = get_parameter_name(opts[1])
local parent
for idx = ctx.n_parents, 1, -1 do
parent = ctx.parents[idx]
if parent[arg] ~= nil then
ctx.params[arg] = parent[arg]
return context_iterate(ctx, 2)
end
end
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, 2)
end
]]--
-- Syntax: #invoke:params|picking|number of parameters to pick|pipe to
--[[
library.picking = function (ctx)
local len = tonumber(ctx.pipe[1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘picking’: The number of parameters to pick must be an integer greater than zero', 0) end
if ctx.n_parents < 1 then copy_table_maxn(ctx.params, ctx.oparams, len)
else copy_table_maxn(ctx.params, ctx.parents[ctx.n_parents], len) end
return context_iterate(ctx, 2)
end
]]--
-- Syntax: #invoke:params|detaching_substack|pipe to
library.detaching_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘detaching_substack’: No substack has been created', 0) end
local parent = ctx.parents[ncurrparent]
for key in pairs(ctx.params) do parent[key] = nil end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|dropping_substack|pipe to
library.dropping_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘dropping_substack’: No substack has been created', 0) end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents =
ctx.parents[ncurrparent], nil, ncurrparent - 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|leaving_substack|pipe to
library.leaving_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘leaving_substack’: No substack has been created', 0) end
local currsnap = ctx.n_children + 1
if ctx.children == nil then ctx.children = { ctx.params }
else ctx.children[currsnap] = ctx.params end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents, ctx.n_children =
ctx.parents[ncurrparent], nil, ncurrparent - 1, currsnap
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|merging_substack|pipe to
library.merging_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘merging_substack’: No substack has been created', 0) end
local parent, child = ctx.parents[ncurrparent], ctx.params
ctx.params, ctx.parents[ncurrparent], ctx.n_parents = parent, nil,
ncurrparent - 1
for key, val in pairs(child) do parent[key] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|flushing|pipe to
library.flushing = function (ctx)
if ctx.n_children < 1 then error(modulename ..
', ‘flushing’: There are no substacks to flush', 0) end
local parent, currsnap = ctx.params, ctx.n_children
for key, val in pairs(ctx.children[currsnap]) do parent[key] = val end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|setting_by_flushing|pipe to
library.setting_by_flushing = function (ctx)
set_strings_from_substack(ctx, ctx, 'setting_by_flushing')
return context_iterate(ctx, 1)
end
--[[ Functions ]]--
-----------------------------
-- Syntax: #invoke:params|count
library.count = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local retval = 0
for _ in ctx.iterfunc(ctx.params) do retval = retval + 1 end
if ctx.subset == -1 then retval = retval - #ctx.params end
ctx.text = retval
return false
end
-- Syntax: #invoke:args|concat_and_call|template name|[prepend 1]|[prepend 2]
-- |[...]|[item n]|[named item 1=value 1]|[...]|[named item n=value
-- n]|[...]
library.concat_and_call = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘concat_and_call’: No template name was provided', 0) end
remove_numeric_keys(opts, 1, 1)
ctx.text = ctx.frame:expandTemplate{
title = tname,
args = concat_params(ctx)
}
return false
end
-- Syntax: #invoke:args|concat_and_invoke|module name|function name|[prepend
-- 1]|[prepend 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named
-- item n=value n]|[...]
library.concat_and_invoke = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘concat_and_invoke’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘concat_and_invoke’: No function name was provided', 0) end
remove_numeric_keys(opts, 1, 2)
local mfunc = require('Module:' .. mname)[fname]
if mfunc == nil then error(modulename ..
', ‘concat_and_invoke’: The function ‘' .. fname ..
'’ does not exist', 0) end
ctx.text = mfunc(ctx.frame:newChild{
title = 'Module:' .. mname,
args = concat_params(ctx)
})
return false
end
-- Syntax: #invoke:args|concat_and_magic|parser function|[prepend 1]|[prepend
-- 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named item n=
-- value n]|[...]
library.concat_and_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘concat_and_magic’: No parser function was provided', 0) end
remove_numeric_keys(opts, 1, 1)
ctx.text = ctx.frame:callParserFunction(magic, concat_params(ctx))
return false
end
-- Syntax: #invoke:params|value_of|parameter name
library.value_of = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘value_of’: No parameter name was provided', 0) end
local val
local key = opts[1]:match'^%s*(.-)%s*$'
if key == '0' or key:find'^%-?[1-9]%d*$' ~= nil then
key = tonumber(key)
val = ctx.params[key]
-- No worries: #ctx.params is unused when the modifier is in
-- first position (and therefore `ctx.params` is a metatable)
if val ~= nil and (
ctx.subset ~= -1 or key > #ctx.params or key < 1
) and (
ctx.subset ~= 1 or (key <= #ctx.params and key > 0)
) then
ctx.text = (ctx.header or '') .. val .. (ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
else
val = ctx.params[key]
if ctx.subset ~= 1 and val ~= nil then ctx.text = (ctx.header
or '') .. val .. (ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
end
return false
end
-- Syntax: #invoke:params|list
library.list = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss =
pps, key, kvs, val, nss + 4
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|list_values
library.list_values = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
-- NOTE: `library.coins()` and `library.unique_coins()` rely on us
local ret, nss, pps = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], nss = pps, val, nss + 2
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|list_maybe_with_names
library.list_maybe_with_names = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
mixed_flush_params(
ctx,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, '', '', val, nss + 4
end,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, key, kvs, val, nss + 4
end
)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|coins|[first coin = value 1]|[second coin = value
-- 2]|[...]|[last coin = value N]
--[[
library.coins = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local opts, tbl = ctx.pipe, ctx.params
for key, val in pairs(tbl) do tbl[key] = opts[get_parameter_name(val)] end
return library.list_values(ctx)
end
]]--
-- Syntax: #invoke:params|unique_coins|[first coin = value 1]|[second coin =
-- value 2]|[...]|[last coin = value N]
--[[
library.unique_coins = function (ctx)
local tmp
local opts, tbl = ctx.pipe, ctx.params
for key, val in pairs(tbl) do
tmp = get_parameter_name(val)
tbl[key], opts[tmp] = opts[tmp], nil
end
return library.list_values(ctx)
end
]]
-- Syntax: #invoke:params|for_each|wikitext
library.for_each = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, pps, txt = {}, 0, ctx.itersep or '', ctx.pipe[1] or ''
local skel, cnv, n_parts = parse_placeholder_string(txt)
flush_params(ctx, function (key, val)
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
ret[nss + 1], nss = pps, nss + 2
ret[nss] = table.concat(cnv)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each|template name|[append 1]|[append 2]
-- |[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘call_for_each’: No template name was provided', 0) end
local model = { title = tname, args = opts }
local ret, nss, ccs = {}, 0, ctx.itersep or ''
table.insert(opts, 1, true)
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each|module name|module function|[append
-- 1]|[append 2]|[...]|[append n]|[named param 1=value 1]|[...]
-- |[named param n=value n]|[...]
library.invoke_for_each = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘invoke_for_each’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘invoke_for_each’: No function name was provided', 0) end
local model = { title = 'Module:' .. mname, args = opts }
local mfunc = require(model.title)[fname]
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each|parser function|[append 1]|[append 2]
-- |[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.magic_for_each = function (ctx)
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘magic_for_each’: No parser function was provided', 0) end
local ret, nss, ccs = {}, 0, ctx.itersep or ''
table.insert(opts, 1, true)
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, opts)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_value|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_value = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘call_for_each_value’: No template name was provided', 0) end
local model = { title = tname, args = opts }
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each_value|module name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.invoke_for_each_value = function (ctx)
local opts = ctx.pipe
local mname, fname
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘invoke_for_each_value’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘invoke_for_each_value’: No function name was provided', 0) end
local model = { title = 'Module:' .. mname, args = opts }
local mfunc = require(model.title)[fname]
local ret, nss, ccs = {}, 0, ctx.itersep or ''
remove_numeric_keys(opts, 1, 1)
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each_value|parser function|[append 1]
-- |[append 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named
-- param n=value n]|[...]
library.magic_for_each_value = function (ctx)
local opts = ctx.pipe
local magic
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘magic_for_each_value’: No parser function was provided', 0) end
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, opts)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_group|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_group = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local tmp
if ctx.pipe[1] ~= nil then tmp = ctx.pipe[1]:match'^%s*(.*%S)' end
if tmp == nil then error(modulename ..
', ‘call_for_each_group’: No template name was provided', 0) end
local model = { title = tmp }
local opts, ret, nss, ccs = {}, {}, 0, ctx.itersep or ''
for key, val in pairs(ctx.pipe) do
if type(key) == 'number' then opts[key - 1] = val
else opts[key] = val end
end
ctx.pipe = opts
ctx.params = make_groups(ctx.params)
flush_params(ctx, function (gid, group)
for key, val in pairs(opts) do group[key] = val end
group[0], model.args, ret[nss + 1], nss = gid, group, ccs,
nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
--[[ First-position-only modifiers ]]--
---------------------------------------
-- Syntax: #invoke:params|new|pipe to
static_iface.new = function (child_frame)
local ctx = context_new(child_frame)
ctx.pipe = copy_or_ref_table(ctx.opipe, false)
ctx.params = {}
main_loop(ctx, context_iterate(ctx, 1))
return ctx.text
end
--[[ First-position-only functions ]]--
---------------------------------------
-- Syntax: #invoke:params|self
static_iface.self = function (frame)
return frame:getParent():getTitle()
end
--[[ Public metatable of functions ]]--
---------------------------------------
return setmetatable({}, {
__index = function (_, query)
local fname = query:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
': You must specify a function to call', 0) end
local func = static_iface[fname]
if func ~= nil then return func end
func = library[fname]
if func == nil then error(modulename ..
': The function ‘' .. fname .. '’ does not exist', 0) end
return function (child_frame)
local ctx = context_new(child_frame)
ctx.pipe = copy_or_ref_table(ctx.opipe, refpipe[fname])
ctx.params = copy_or_ref_table(ctx.oparams, refparams[fname])
main_loop(ctx, func)
return ctx.text
end
end
})
9ko1dij40e2ajwgg59fvqm72uoivi2f
Accra Technical University
0
7323
62889
62871
2026-07-23T21:06:58Z
Mary Loor
55
62889
wikitext
text/x-wiki
A '''Accra Technical''' '''Yuniiveniti''' (ATU) wa piili la 1949 poɔ a wa e Technical Sakuuri a Ghana poɔ kyɛ ka ba wa leɛ o 1957 poɔ ka o e Accra Technical Institute sɛre ka a Ghana zu kaara pãã la zɛge o fēē ka o e Polytechnic a 2007 poɔ.<ref>https://web.archive.org/web/20210616005407/https://atu.edu.gh/history-of-the-office/</ref><ref>https://web.archive.org/web/20180401212821/http://ghana.gov.gh/index.php/media-center/news/536-technical-education-to-make-graduands-employers-terkper</ref><ref>https://www.graphic.com.gh/features/opinion/conversion-of-polytechnics-to-universities-serious-error-was-akilagpa-sawyerr-right.html</ref><ref>https://www.graphic.com.gh/news/general-news/accra-technical-university-confirms-first-covid-19-case.html</ref>
O pãã wa leɛ la yuniveniti meŋa, a e a Technical Yuniveniti (ATU) a 2016 poɔ. A sakuuri be la Accra, Ghana poɔ.
Accra Technical Yuniveniti yɛlɛ zaa kyaare la technical ane vocational zannoo. A sakuuri zanna la zan-tɛɛtɛɛ ka a mine la applied sciences, engineering, business, arts, ane design.
== Dakoroŋ ==
=== Piiluu ===
Accra Technical Univɛniti wa la a Technical Univɛniti fɔrɔ a piili. O wa piili la a1949 a e Technical Sakuuri kyɛ pãã yi be a leɛ e Accra Technical Institute a 1957 poɔ.1963 poɔ, ba wa leɛ la a sakuuri yuori ka o e Accra Polytechnic, a Ghana zukaara kora, Dr. Kwame Nkrumah la leɛ o. A Polytechnic begɛ a1992 (PNDC 321) poɔ,<ref>https://web.archive.org/web/20200129172242/http://laws.ghanalegal.com/acts/id/545/polytechnic-law</ref> be la ka o pãã piili tona toma daadaa a 1993/1994 academic year, Accra Technical University yeltarre wa zɛge do la a e was elevated a e tertiary. A sakuuri wa be la a Higher Education Council ne autonomy ka ba tere Higher National Diplomas kyɔɔtaa (a yi a National Board ko Professional ane Technician Examinations)
A PNDC begɛ 321 bimmo sobiri, a univɛniti daanɛɛ ba programmes ane ba ziiri ka ba tõɔ yiniŋ middle-level kpaŋkpeɛõ yeltarre ka ba leɛ kyɛ soŋ ka a Ghanaian industries a tõɔ baa velaa. Aneazaa ka yelwonni la vɛŋ ka yɛlɛ mine leɛ wieõu a yi secondary a gaa tertiary, Accra Technical Univɛniti de la gbɛtola a ka ba yeltarre gaa nimitɔɔre a ba yel-leɛkaaree ane yelbɛrɛ ka ba yelferee na na ŋmaabare. Accra Technical Univɛniti piili la a erɛ began to offer National Diploma (HND) programmes naŋ do zu a Mechanical Engineering poɔ, Electrical/Electronic Engineering, Building Technology, Civil Engineering, Furniture Design ane Production, Secretaryship ane Management Studies, Bilingual Secretaryship ane Management Studies, Accountancy, Marketing, Purchasing ane Supply, Hotel Catering ane Institutional Management, Fashion Design ane Textiles, Mathematics ane Statistics, ane Science Laboratory Technology. A technician courses a Polytechnic naŋ erɛ meŋ naŋ wa bebe la.<ref>https://web.archive.org/web/20190402054957/https://nabptex.gov.gh/about-us/nabptex/</ref>
'''A sakuuri waaloŋ'''
== Campus ==
A campus be la Barnes soriŋ, a Accra poɔ.
== Academics ==
A univɛniti taa lahas faculties anuu.
=== Faculty of Engineering ===
* Department of Mechanical Engineering
* Department of Electrical/Electronic Engineering
* Department of Civil Engineering
[[Duoro kɔre:Accra Technical University Ghana.jpg|thumb]]
'''Faculty of Built Environment'''
* Department of Interior Design and Upholstery Technology
* Department of Building Technology
=== Faculty of Applied Sciences ===
* Applied Mathematics and Statistics
* Science Laboratory Technology
* Computer Science
* Medical Laboratory Technology
=== Faculty of Applied Arts ===
* Department of Hotel Catering & Institutional Management (HCIM)
* Fashion Design & Textile Department
=== Faculty of Business ===
* Accountancy and Finance
* Management and Public Administration
* Procurement and Supply Chain Management.
* Marketing
=== HND Programmes ===
With the upgrade in status, the technician courses previously offered by the school were maintained, and Higher National Diploma (HND) programmes in the following fields were added:
* Mechanical Engineering
* Electrical/Electronic Engineering
* Building Technology
* Civil Engineering
* Furniture Design and Production
* Secretaryship and Management Studies
* Bilingual Secretaryship and Management Studies
* Accountancy
* Marketing
* Purchasing and Supply
* Hotel Catering and Institutional Management
* Fashion Design and Textiles
* Mathematics and Statistics
* Science Laboratory Technology
* Medical Laboratory Science
== Meŋ la nyɛ ==
* Univɛniti mine naŋ be Ghana poɔ
* Education a Ghana poɔ
== Sommo yizie ==
jft1vto6wfzf5kmsx6o4puhn7rdgbwn
National dish
0
7325
62882
62859
2026-07-23T14:37:47Z
Edith Tangkur
310
Add reference
62882
wikitext
text/x-wiki
A '''national dish''' e la bondirii booree kaŋa naŋ maŋ manna paaloŋ kaŋa deme bondirii. <ref name=":0">https://web.archive.org/web/20161014060413/http://www.nationalgeographic.com/travel/top-10/national-food-dishes/</ref>Bondirii kaŋa na baŋ de la ka o e paaloŋ bondirii a yi yɛlɛ tɛɛtɛɛ mine zuiŋ.
* O e la bondiraa naŋ are ziyeni, a maŋ maale ne la a yi bommaale tɛɛtɛɛ naŋ bebe a kyɛ na baŋ maale maaloo zaa, a seŋ ''fruits de mer'', ka west coast a France<ref name=":0" /> poɔ maŋ di.
* O maŋ taa la bommaale mine naŋ maŋ yɛrɛɛ lɛ, a seŋ paprika a European deme naŋ kɔ Pyrenees.<ref name=":0" />
* O maŋ baŋ e la saaŋkoŋ tigiri bondiraa naŋ maŋ paale ba lesiri yeltuuri poɔ a seŋ, barbecues a summer camp poɔ bee fondue a dinner parties—bees poɔ a saaŋkoŋ yeltuuri poɔ a seŋ Korban Pesach bee Iftar diibu.<ref name=":0" />
* Ba de o la ka o e national bondirii, a teŋɛ deme meŋɛ zie, a seŋ a fondue a Swiss Cheese Union naŋ e ka o yɛlɛ yi gbaŋgbale ka o e a Switzerland deme bondirii (Schweizerische Käseunion) a 1930s poɔ.<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-Janer2008_2-1</ref>
== A paaloŋ ==
A ama ba e bondirii ba naŋ de ka a e national bondirii, kyɛ a e la bondirii mine ba naŋ da teɛre ka a e national bondirii.<ref>https://doi.org/10.1007%2FBF00250241</ref>
'''A'''
* Afghanistan: kabuli palaw<ref>https://web.archive.org/web/20100903190418/http://www.tastedefined.com/2009/11/kabuli-pulao-with-raisins-and-carrots.html</ref>
* Albania: tavë kosi,<ref>https://www.bbc.co.uk/food/recipes/albanian_baked_lamb_with_92485</ref> flia
* Algeria: couscous,<ref name=":1">https://www.joe.co.uk/food/the-national-dish-of-every-country-at-the-world-cup-ranked-from-worst-to-best-183729</ref> rechta
* Andorra: escudella i carn d'olla<ref>https://web.archive.org/web/20201027125553/https://theculturetrip.com/europe/andorra/articles/the-10-most-traditional-dishes-from-andorra/</ref>
* Angola: moamba de galinha<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-8</ref>
* Antigua ane Barbuda: fungee ane pepperpot
* Argentina: asado,<ref>https://web.archive.org/web/20131203103920/http://viaresto.com/Notas/El-asado-660.aspx</ref><ref name=":1" /> empanada,<ref>https://www.lanacion.com.ar/lifestyle/el-mapa-definitivo-empanadas-argentinas-sus-14-nid2175466</ref> matambre, locro<ref>https://books.google.com/books?id=N78aCgAAQBAJ&q=national+dish</ref><ref>https://www.heraldtribune.com/story/news/2006/01/19/world-traveler-offers-tips-for-making-argentinian-specialty/28457449007/</ref><ref>https://web.archive.org/web/20210203082626/https://alanitrading.com/2020/04/21/how-different-countries-use-beef</ref><ref>https://web.archive.org/web/20080727003909/http://www.argentina.ar/_es/turismo/C791-gastronomia.php</ref>
* Armenia: khorovats, harisa (ta vɛŋ ka buriburi kpɛ neŋ a North African pepper paste harissa)
* Aruba: Keshi yena<ref name=":2">https://www.aljazeera.com/indepth/features/2013/05/201355102059629831.html</ref><ref>https://www.caribbeanemagazine.com/single-post/aruba-and-curacao-s-national-dish-keshi-yena-recipe</ref>
* Australia: roast lamb,<ref>https://web.archive.org/web/20131006180221/https://www.sunshinecoastdaily.com.au/news/roast-lamb-crowned-australias-national-dish/1781137/</ref> meat pie,<ref>https://www.theguardian.com/commentisfree/2015/jan/02/the-question-that-wont-die-is-the-meat-pie-australias-national-dish</ref><ref>https://web.archive.org/web/20100127182253/http://www.weightwatchers.com.au/util/art/index_art.aspx?tabnum=1&art_id=42481</ref><ref>https://www.sunstar.com.ph/article/13106/Local-News/Aussie-meat-pies</ref>Vegemite on toast<ref>https://www.independent.co.uk/news/world/australasia/cautious-change-to-australias-national-dish-1705216.html</ref>
* Austria: Wiener schnitzel<ref name=":3">https://web.archive.org/web/20161014060413/http://www.nationalgeographic.com/travel/top-10/national-food-dishes/</ref>
* Azerbaijan: dolma<ref name=":2" />
'''B'''
* Bahamas: crack conch ne peas ane mui<ref>https://web.archive.org/web/20100622063510/http://www.caribbeanamericanfoods.com/?page=island_dishes</ref>
* Bahrain: kabsa<ref>https://www.daringgourmet.com/chicken-machboos-bahraini-chicken-rice/</ref><ref>https://web.archive.org/web/20110610155501/http://www.worldcuisine.org.uk/tag/bahrain-national-dish</ref>
* Bangladesh: mui ne zombo (particularly ilish)<ref>https://web.archive.org/web/20101203204751/http://www.salon.com/life/food/eat_drink/2007/07/03/eating_india/</ref>
* Barbados: cou-cou ane zoŋ ɛgeraa<ref>https://ingmar.app/blog/national-dish-of-belarus-draniki/</ref>
* Belarus: draniki<ref name=":3" />
* Belgium: frites<ref>https://www.gulftoday.ae/lifestyle/2020/03/15/belgiums-national-dish-fried-potato-sticks-are-spared-from-the-national-coronavirus-lockdown</ref> (o maŋ de ne la mussels bee steak), <ref>https://archive.org/details/isbn_9781741048551</ref><ref name=":1" />carbonade flamande,waterzooi,<ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref> chocolate mousse, <ref name=":4">https://www.researchgate.net/publication/51094975</ref>Belgian waffle<ref name=":4" />
* Belize: mui ne bɛŋa<ref>[https://www.visitflanders.com/en/themes/flemish-food/flemish-dishes-and-specialities/flemish-dishes/belgian-chocolate-mousse/#:~:text=Chocolate%20mousse%20is%20one%20of,one%20and%20only%20national%20dessert. https://www.visitflanders.com/en/themes/flemish-food/flemish-dishes-and-specialities/flemish-dishes/belgian-chocolate-mousse/#:~:text=Chocolate%20mousse%20is%20one%20of,one%20and%20only%20national%20dessert.]</ref>
* Benin: kuli-kuli<ref>https://blog.remitly.com/lifestyle-culture/nationaldishes-belgian-waffles-belgium/</ref>
* Bhutan: ema datshi<ref>https://www.belizeadventure.ca/belizean-food-typical-and-traditional-things-to-try/</ref>
* Bolivia: salteñas<ref>https://web.archive.org/web/20181117233846/https://www.bhutan.travel/page/food</ref>
* Bosnia<ref>https://www.newcastleherald.com.au/story/2581479/the-worlds-12-best-national-dishes/</ref> and Herzegovina:<ref>https://web.archive.org/web/20101118053858/http://myhungrytum.com/2010/02/14/bosanksi-lonac-bosnia-herzegovina-national-dish-day-38dish-21/</ref> Bosnian pot,<ref>https://web.archive.org/web/20210119182350/https://theculturetrip.com/europe/bosnia-herzegovina/articles/the-21-best-dishes-in-bosnia-and-herzegovina/</ref><ref>https://www.croatiaweek.com/cevapi-the-dish-driving-people-crazy-for-decades/</ref> ćevapi, burek<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-1-74220-593-9</ref>
* Botswana: seswaa<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-1-74220-593-9</ref>
* Brazil: feijoada Picanha<ref>https://web.archive.org/web/20190705182246/https://sistemas.mre.gov.br/kitweb/datafiles/KualaLumpur/en-us/file/revistaing13-mat06.pdf</ref><ref name=":1" />
* Brunei: ambuyat<ref>https://web.archive.org/web/20140404180705/http://bt.com.bn/life/2009/02/21/fostering_family_ties_with_ambuyat_feasts</ref><ref>http://www.bt.com.bn/art-culture/2011/01/08/ambuyat-our-iconic-heritage</ref>
* Bulgaria: Shopska salad<ref>https://www.youngpioneertours.com/bulgarian-cuisine/</ref>, banitsa<ref>https://www.tasteatlas.com/banitsa</ref>
* Burkina Faso: riz gras
* Burundi: boko boko<ref>https://worldfood.guide/dish/boko_boko/</ref>
'''C'''
* Cambodia: amok zombo,<ref>http://www.canadianliving.com/blogs/food/2009/06/30/does-canada-have-a-national-dish/</ref><ref>https://grantourismotravels.com/cambodian-fish-amok-recipe/</ref> ''num banhchok'', <ref>https://grantourismotravels.com/nom-banh-chok-fermented-rice-noodles-cambodia/</ref>''samlar kako''<ref>http://www.tourismcambodia.com/tripplanner/food-and-drink/khmer-foods.htm</ref><ref>https://grantourismotravels.com/samlor-korko-recipe-cambodian-soup/</ref>
* Cameroon: ndolé<ref>https://www.nytimes.com/2008/12/07/nyregion/thecity/07asyl.html?pagewanted=1&ref=thecity</ref>
* Canada: poutine,<ref>https://web.archive.org/web/20110130122239/http://articles.cnn.com/2010-10-02/world/canada.poutine_1_dish-cheese-curds-foie?_s=PM%3AWORLD</ref><ref>https://web.archive.org/web/20110130122239/http://articles.cnn.com/2010-10-02/world/canada.poutine_1_dish-cheese-curds-foie?_s=PM%3AWORLD</ref><ref>https://web.archive.org/web/20110322002206/http://www.torontolife.com/daily/daily-dish/aprons-icons/2010/04/22/is-poutine-canadas-national-food-two-arguments-for-two-against/</ref> donair, butter tarts,<ref>https://alliedpassport.com/blog/national-dish-of-canada/</ref> Nanaimo bar, tourtière<ref>http://www.canadianliving.com/blogs/food/2009/06/30/does-canada-have-a-national-dish/</ref><ref>https://web.archive.org/web/20181226023544/https://torontosun.com/category/life</ref>
* Cape Verde: cachupa
* Central African Republic: baŋkye
* Chad: boule
* Chile: empanada,<ref>https://www.nytimes.com/2009/04/15/dining/15empa.html?_r=0</ref> pastel de choclo,<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-1-55832-249-3</ref><ref>https://www.npr.org/sections/thesalt/2016/07/07/484987260/in-chile-marraqueta-is-the-bread-of-life</ref> marraqueta<ref>https://www.nytimes.com/2009/04/15/dining/15empa.html?_r=0</ref>
* China: Peking duck,<ref>https://web.archive.org/web/20140312000414/http://www.cits.net/china-guide/china-traditions/peking-roast-duck.html</ref> crayfish,<ref>https://www.scmp.com/lifestyle/food-drink/article/2153030/how-american-crayfish-invaded-chinese-hearts-and-stomachs-and</ref><ref>https://www.goldthread2.com/food/how-louisiana-crayfish-became-china-national-dish/article/3023711</ref> dog-toloŋ, dumpling, malaxiangguo, dim sum,<ref>https://www.independent.co.uk/news/world/asia/hong-kong-warns-citizens-off-unhealthy-dim-sum-5346000.html</ref> kaolengmian, tanghulu
* Colombia: ajiaco,<ref>https://www.telegraph.co.uk/recipes/0/slow-cooker-colombian-potato-chicken-soup-recipe/</ref> bandeja paisa<ref>https://web.archive.org/web/20181226023541/http://www.saludcolombia.com/actual/salud60/colabora.htm</ref>
* Comoros: Langouste a la vanille (vanilla lobster)<ref>https://www.saveur.com/lobster-vanilla-sauce-recipe</ref>
* Democratic Republic a Congo poɔ: poulet à la moambé<ref name=":5">https://www.independent.co.uk/travel/africa/192part-guide-to-the-world-democratic-republic-of-congo-166497.html</ref>
* Republic of the Congo: poulet moambé<ref name=":5" />
* Costa Rica: casado, chifrijo (chicharrón bee di neŋ doba-nɛne naŋ kyēē be paa ane bɛŋɛ, gbɛɛyaga bɛnzeere bee bɛnsɔglɔ), mui peɛlaa ane pico de gallo (o na baŋ di ne la avocado ane/bee kamaana chips), gallo pinto,<ref name=":1" />olla de carne (naabo nɛne zeɛre ane zɛva-tɛɛtɛɛ).
* Croatia: zagorski štrukli, pašticada, sinjski arambaši, soparnik, rapska torta, imotska torta, rafioli,<ref>https://registar.kulturnadobra.hr/</ref> jota
* Cuba: ropa vieja<ref>https://www.salon.com/2018/05/30/a-recipe-for-cubas-national-dish-ropa-vieja-or-rags-from-the-new-book-cuban-flavor/</ref><ref>https://web.archive.org/web/20210415015906/https://wearemitu.com/culture/a-history-of-ropa-vieja-one-of-cubas-most-famous-and-forbidden-national-dishes/</ref>
* Cyprus: souvla,<ref>https://nt.gov.au/community/multicultural-communities/community-profiles/greek-cypriot</ref> kleftiko,<ref>https://apnews.com/832cf765ae944b988d7e2cdb9ca50931</ref><ref>https://web.archive.org/web/20210521211059/https://www.flyedelweiss.com/EN/destinations/paphos/Pages/paphos-culinary.aspx</ref> trachanás<ref>https://en.wikipedia.org/wiki/William_Woys_Weaver</ref>
* Czech Republic: vepřo knedlo zelo (doba-nɛnseɛraa ane roast dumplings ane sauerkraut), <ref>http://www.radio.cz/en/section/letter/czech-eating-habits-take-a-turn-for-the-better</ref>svíčková,<ref>https://web.archive.org/web/20200812130250/https://www.urbanadventures.com/blog/ultimate-czech-food-guide/</ref> paštika
'''D'''
* Denmark: stegt flæsk,<ref>https://web.archive.org/web/20141018161213/http://danskernesmad.dk/nationalret/</ref><ref name=":1" /><ref name=":6">https://www.thelocal.dk/20141120/denmark-declares-its-first-national-dish</ref> smørrebrød,<ref>https://www.npr.org/2011/01/04/132627711/the-art-of-the-danish-open-face-sandwich</ref><ref>https://www.npr.org/2011/01/04/132627711/the-art-of-the-danish-open-face-sandwich</ref><ref name=":6" /> flæskesteg
** Faroe Islands: Skerpikjøt
** Greenland: suaasat
* Djibouti: skoudehkaris
* Dominica: taŋazu noore (dakoroŋ), callaloo<ref>https://dominicanewsonline.com/news/homepage/news/general/breaking-news-callaloo-dominicas-new-national-dish/</ref>
* Dominican Republic: La bandera (mui, bɛŋa ane nɛne)<ref>https://www.nytimes.com/2020/01/02/travel/what-to-do-36-hours-in-santo-domingo-dominican-republic.html</ref>
E
* Ecuador: encebollado,<ref>https://web.archive.org/web/20160304051630/http://www.montanita.com/noticia-restaurantes/el-encebollado/10523</ref> guatitas,<ref>https://web.archive.org/web/20181226023555/http://ecuador.pordescubrir.com/la-guatita-ecuatoriana.html</ref> fanesca
* Egypt: ful medames,<ref>https://edition.cnn.com/travel/article/africa-food-dishes/index.html</ref> kushari, molokhiya,<ref>https://books.google.com/books?id=zzccAQAAMAAJ</ref> ''taʿamiya''<ref>https://en.wikipedia.org/wiki/Claudia_Roden</ref>
* El Salvador: pupusa<ref>https://web.archive.org/web/20210923085057/https://www.asamblea.gob.sv/decretos/details/1535</ref><ref>https://web.archive.org/web/20180623144409/http://www.cultura.gob.sv/secultura-invita-a-celebrar-el-dia-nacional-de-la-pupusa/</ref>
* Equatorial Guinea: Succotash
* Eritrea: zigini ne injera<ref>https://www.independent.co.uk/travel/africa/192part-guide-to-the-world-eritrea-633664.html</ref>
* Estonia: kama<ref>https://web.archive.org/web/20071217022649/http://www.eestitoit.ee/pages.php/010201%2C8</ref>
* Eswatini: Shisa Nyama
* Ethiopia: doro wat ane injera<ref>https://www.washingtonpost.com/archive/lifestyle/food/2005/05/18/ethiopias-national-dish/c199dd20-163d-4421-b54f-1602aa139132/</ref>
'''F'''
* Fiji: kokoda (Fijian ceviche)<ref>https://www.internationalcuisine.com/fiji-kokoda/</ref>
* Finland: rye boroboro,<ref>http://yle.fi/uutiset/osasto/news/the_people_have_spoken_-_rye_bread_is_the_national_food/9413195</ref> Karelian pie, karjalanpaisti, lohikeitto, joulutorttu
* France: escargot, pot-au-feu,<ref>https://www.nytimes.com/2004/02/18/dining/four-nations-where-forks-do-knives-work.html?pagewanted=2</ref><ref>http://away.com/feature/excerpt/national-geographic/top-ten-great-national-dishes-1.html?page=1</ref> beef bourguignon,<ref name=":7">https://www.lonelyplanet.com/articles/beef-bourguignon-france</ref><ref>https://www.nationalgeographic.co.uk/travel/2020/08/the-story-behind-the-classic-french-dish-boeuf-bourguignon</ref> blanquette de veau,<ref name=":7" /> steak frites,<ref name=":7" /> baguette,<ref>https://www.economist.com/1843/2019/01/22/its-crunch-time-for-the-baguette</ref> cassoulet,<ref>https://www.petitfute.com/p1-france/actualite/m17-top-10-insolites-voyage/a22083-les-10-plats-typiques-de-la-gastronomie-francaise.html</ref> cheese,<ref>https://www.parisinsidersguide.com/10-top-cheeses-of-france.html#:~:text=Camembert,the%20list%20at%20number%20one</ref> crêpe,<ref>https://www.thesouthend.wayne.edu/article_6d0bd2f5-d2ce-5291-8a7b-980b948dc12e.html</ref> crème caramel,<ref>https://books.google.com/books?id=_4J6DwAAQBAJ&q=france+%22national+dessert%22&pg=PT91</ref> croissant, poule au pot (dakoroŋ),<ref>https://www.nouvelle-aquitaine-tourisme.com/en/news/traditional-recipe-authentic-poule-au-pot</ref> chou à la crème
*
=== G ===
* Gabon: poulet nyembwe<ref>https://web.archive.org/web/20111006195823/http://www.gabonmagazine.com/images/G10-ENGLISH/G10.palmoil.p18-23.pdf</ref>
* The Gambia: domoda<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-0-313-35911-8</ref>
* Georgia: khachapuri,<ref>https://web.archive.org/web/20210121215413/http://georgiatoday.ge/news/14205/Khachapuri-Granted-Cultural-Heritage-Status</ref><ref>https://web.archive.org/web/20111007010149/http://www.investor.ge/issues/2010_2/02.htm</ref><ref>http://www.iset-pi.ge/index.php?article_id=715</ref> khinkali<ref>https://www.georgianwine.uk/georgian-food-tastes-of-the-silk-road/</ref>
* Germany: schweinshaxe, bratwurst, sauerbraten,<ref>https://web.archive.org/web/20100707024527/http://www.germanfoods.org/schools/delicious/traditionaldishes.cfm</ref> döner kebab,<ref>https://www.nytimes.com/1996/06/26/garden/for-germans-a-kebab-filled-with-social-significance.html</ref> currywurst,<ref>https://www.nytimes.com/2011/01/27/world/europe/27berlin.html</ref> eisbein with sauerkraut<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-118</ref><ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-119</ref><ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-120</ref>
* Ghana: fufu, jollof rice
* Greece: horiatiki,moussaka, <ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-Michelin_121-0</ref>fasolada<ref name=":8">[https://greece.greekreporter.com/2018/06/29/what-is-the-national-dish-of-greece/#:~:text=In%20Greece%2C%20the%20national%20dishes,region%20or%20island%20in%20Greece. https://greece.greekreporter.com/2018/06/29/what-is-the-national-dish-of-greece/#:~:text=In%20Greece%2C%20the%20national%20dishes,region%20or%20island%20in%20Greece.]</ref> souvlaki, <ref name=":8" />gyros, <ref name=":8" />magiritsa, <ref name=":8" />kokoretsi<ref name=":8" />
* Grenada: oil down
* Guatemala: pepián<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-123</ref>
* Guinea: poulet yassa
* Guinea-Bissau: caldo de mancarra
* Guyana: pepperpot and chicken curry<ref>http://www.gov.gd/articles/grenada_oil_down.html</ref>
=== H ===
[[https://en.wikipedia.org/wiki/File:Goulash_in_Prague.jpg|right|thumb|Hungarian goulash]]
* Haiti: griot, soup joumou
* Honduras: baleada
* Hong Kong: pineapple bun, dim sum
* Hungary: goulash<ref>https://web.archive.org/web/20251005093903/https://theculturetrip.com/central-america/guatemala/articles/the-10-most-traditional-dishes-from-guatemala</ref><ref name=":9">https://web.archive.org/web/20131004213347/http://www.caribbeanamericanfoods.com/?page=island_dishes</ref>
=== I ===
[[https://en.wikipedia.org/wiki/File:Sate-2.JPG|thumb|Satay, one of the national dishes of Indonesia]]
[[https://en.wikipedia.org/wiki/File:Espaguetis_carbonara.jpg|thumb|A dish of pasta ({{lang|it|[[carbonara]]}}). Pasta is considered one of the national dishes of Italy]]
* Iceland: lamb, <ref>https://icelandicfood.is/the-national-dish-of-iceland/</ref><ref>https://icelandmonitor.mbl.is/news/news/2015/04/01/what_is_iceland_s_national_dish/</ref><ref>https://www.vogue.com/article/what-to-eat-in-iceland-local-food</ref>hákarl<ref>https://web.archive.org/web/20200918082328/https://theculturetrip.com/europe/iceland/articles/how-fermented-shark-became-the-national-dish-of-iceland/</ref><ref name=":9" /><ref name=":1" />
* India: Khichdi, Chaat, butter chicken, biryani, Dal, dosa, idli<ref>https://www.outlookindia.com/traveller/cuisine/biryani-indias-national-dish</ref><ref>https://www.ndtv.com/food/fictitious-says-union-minister-harsimrat-kaur-badal-khichdi-wont-be-the-national-dish-1769941</ref><ref>https://www.clubmahindra.com/blog/food/7-dishes-that-can-be-the-national-food-of-india</ref><ref>https://www.scmp.com/magazines/post-magazine/travel/article/2128642/how-khichdi-mix-lentils-and-rice-became-indias</ref>
* Indonesia: nasi goreng,<ref name=":10">https://travel.kompas.com/read/2018/04/10/171000627/kemenpar-tetapkan-5-makanan-nasional-indonesia-ini-daftarnya</ref><ref name=":11">https://web.archive.org/web/20181226023403/http://travel.cnn.com/explorations/eat/40-foods-indonesians-cant-live-without-327106</ref> mie goreng<ref>https://keasberry.com/recipes/mie-goreng-indonesian-fried-noodles/</ref>, tumpeng, <ref>https://www.thejakartapost.com/news/2014/02/10/celebratory-rice-cone-dish-represent-archipelago.html</ref>satay,<ref name=":10" /><ref name=":11" />soto,<ref name=":10" /><ref>http://eatingasia.typepad.com/eatingasia/2009/03/soto-crawl.html</ref> rendang,<ref name=":10" /> gado gado<ref name=":10" />
* Iran: abgoosht,<ref name=":1" />chelo kabab,<ref>https://web.archive.org/web/20181226023540/https://www.thespruceeats.com/chelo-kebab-recipe-2355640</ref> ghormeh sabzi <ref>https://web.archive.org/web/20210904093513/https://iranian.com/2020/03/20/delicious-najmieh-batmanglij-transforms-irans-national-dish-into-a-pizza/</ref>Fesenjan
* Iraq: masgouf,<ref>https://www.thetimes.com/travel/destinations/uk-travel/england/london-travel/imams-put-fatwa-on-carp-caught-in-tigris-bbs2qxdcrgf</ref> dolma, Iraqi kebab, quzi
* Ireland: soda bread,<ref>https://www.independent.ie/irish-news/top-breakfast-baguette-rolls-into-irish-history-26445568.html</ref> butter,<ref>https://web.archive.org/web/20160131081749/http://britishfood.about.com/od/introtobritishfood/f/questions.htm</ref><ref>https://www.scmp.com/news/world/europe/article/3064848/coronavirus-french-corona-pizza-video-outrages-italians-prompting</ref> Irish stew
* Israel: falafel (served in pita),<ref>https://web.archive.org/web/20180307151129/https://www.haaretz.com/israel-s-national-food-no-matter-where-it-started-1.5216693</ref><ref>https://web.archive.org/web/20081024212900/http://www.myjewishlearning.com/culture/food/IsraeliFood/FalafelRecipe.htm</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref> Israeli salad,<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-151</ref> <ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-152</ref>meorav Yerushalmi,<ref>https://nationalpost.com/life/food/cook-this-green-shakshuka-with-chard-kale-spinach-and-feta-from-shuk</ref> sabich, Ptitim
* Italy: pasta,<ref>https://news.bbc.co.uk/2/hi/europe/6992444.stm</ref> <ref>https://www.scmp.com/news/world/europe/article/3064848/coronavirus-french-corona-pizza-video-outrages-italians-prompting</ref>pizza,<ref>https://books.google.com/books?id=xeN5DwAAQBAJ&q=pizza+national+dish&pg=PA34</ref><ref>https://www.cedigros.com/rubriche/italia-in-tavola/7459/risotto.html</ref> risotto, mozzarella,<ref>https://www.lapecorella.it/2023/10/24/formaggi-nella-cucina-italiana/</ref> Parmigiano Reggiano,<ref>https://www.parmigianoreggiano.com/it/news/parmigiano-reggiano-italiano</ref> Italian wine
* Ivory Coast: atcheke<ref>https://books.google.com/books?id=iE6DAwAAQBAJ&q=%22national+dish%22+zimbabwe&pg=PA177</ref>
=== J ===
[[https://en.wikipedia.org/wiki/File:Sushi_(1441234074).jpg|right|thumb|Sushi, Japan]]
* Jamaica: Ackee and saltfish<ref>https://web.archive.org/web/20110121124324/http://away.com/feature/excerpt/national-geographic/top-ten-great-national-dishes-1.html?page=2</ref>
* Japan: sushi,<ref>[https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known. https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known.]</ref> Japanese curry,<ref>[https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known. https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known.]</ref>ramen,<ref>https://www.theguardian.com/world/2010/jun/18/ramen-japan-national-dish</ref> tempura,<ref>https://web.archive.org/web/20210521211058/https://www.nhk.or.jp/dwc/food/articles/42.html</ref> wagashi,<ref>https://www.bangkokpost.com/life/social-and-lifestyle/279145/sweet-treats-from-japan</ref> sashimi, miso soup
* Jordan: mansaf<ref>https://web.archive.org/web/20170726011901/http://waleg.com/kitchen/archives/000912.html</ref><ref>http://www.kinghussein.gov.jo/facts3.html</ref>
=== K ===
[[https://en.wikipedia.org/wiki/File:Korean.cuisine-Kimchi-Jeotgal-01.jpg|right|thumb|Korean kimchi]]
* Kazakhstan: beshbarmak<ref>https://weproject.media/en/articles/detail/how-beshbarmak-is-served-in-different-regions-of-kazakhstan/</ref>
* Kenya: ugali with sukuma wiki,<ref name=":12">https://en.wikipedia.org/wiki/Kivutha_Kibwana</ref>githeri,<ref name=":12" /> chapati,<ref name=":12" /><ref>https://www.standardmedia.co.ke/evewoman/food/article/2001231754/chapati-edges-ugali-out-of-table-in-kenya-as-the-rich-salivate-over-poor-mans-diet</ref>nyama choma<ref>https://books.google.com/books?id=TTf0Aki6AUQC&q=national+dish+&pg=PA90</ref>
* Kiribati: Palusami
* Korea, North: raengmyŏn, <ref>https://www.eater.com/2018/9/25/17855140/pyongyang-naengmyeon-jungsik-yim-north-korea-cold-noodles</ref>kimchi<ref>https://edition.cnn.com/travel/article/north-korea-kimchi-festival/index.html</ref>
* Korea, South: kimchi,<ref>https://www.bbc.com/news/world-asia-25840493</ref> bulgogi, <ref>https://www.thedailymeal.com/10-national-dishes-around-world/6514</ref>bibimbap, <ref>http://www.theaustralian.com.au/life/travel/pyeongchang-winter-olympics-the-next-cool-spot/news-story/4f5f9f25423111d937a01069722c0a37</ref>jajangmyeon, <ref>https://www.jamesbeard.org/recipes/jajangmyun-noodles-with-black-bean-sauce</ref><ref>https://www.smithsonianmag.com/arts-culture/koreas-black-day-when-sad-single-people-get-together-and-eat-black-food-16537918/?no-ist</ref>bingsu,<ref>https://www.straitstimes.com/lifestyle/food/beat-the-heat-with-bingsu-south-koreas-national-dessert-of-shaved-ice-milk-condensed</ref> tteokbokki
* Kosovo: flia
* Kuwait: Machboos Laham
* Kyrgyzstan: beshbarmak
=== L ===
[[https://en.wikipedia.org/wiki/File:Flickr_-_cyclonebill_-_Tabbouleh.jpg|right|thumb|Tabbouleh, Lebanon]]
* Laos: larb/laap, sticky rice, tam mak hoong
* Latvia: layered rye bread, sklandrausis, Jāņi cheese, Grey peas
* Lebanon: kibbeh,<ref name="ReferenceA" /> tabbouleh
* Lesotho: Pap-pap
* Liberia: dumboy
* Libya: Couscous
* Liechtenstein: käsknöpfle
* Lithuania: bigos, cepelinai,<ref name="Albala 2011 p. 3-PA226" /><ref name="McLachlan 2008 p. 61" /> šaltibarščiai
* Luxembourg: Judd mat Gaardebounen
=== M ===
[[https://en.wikipedia.org/wiki/File:Nasi_Lemak,_Mamak,_Sydney.jpg|thumb|Nasi lemak, a national dish of Malaysia.]]
* Madagascar: romazava
* Malaysia: nasi lemak, satay
* Maldives: mas huni
* Mali: tiguadege na
* Malta: stuffat tal-fenek
* Marshall Islands: Barramundi cod, macadamia nut pie
* Mauritius: dholl puri (flatbread stuffed with lentils)
* Mexico: taco,<ref name="Joe" /> mole poblano, chiles en nogada
* Moldova: mămăligă, ghivetch
* Monaco: barbagiuan
* Mongolia: buuz
* Montenegro: njeguški pršut
* Morocco: couscous,<ref name="Joe" /> tagine
* Myanmar: mohinga, lahpet thoke<ref name="Haber" />
=== N ===
[[https://en.wikipedia.org/wiki/File:Dhido.jpg|thumb|Dhido, Nepal]]
* Nauru: coconut fish
* Nepal: Gundruk and Dhido
* Netherlands: stamppot, soused herring with onion and pickles
* New Zealand: meat pie, bacon and egg pie, lamb, pavlova<ref name="Pavlova" />
* Nicaragua: gallo pinto, nacatamal, vigorón
* Niger: dambou
* Nigeria: tuwon shinkafa,<ref name="Joe" /> Jollof rice,<ref name="Africa" /> pounded yam and egusi soup<ref name="Africa" /><ref name="National" />, Indomie instant noodles
* North Macedonia: tavče gravče
* Norway: fårikål
=== O ===
* Oman: shuwa
*
=== P ===
[[https://en.wikipedia.org/wiki/File:Pork_adobo_with_shallots.jpg|thumb|Philippine adobo, a national dish of the Philippines]]
* Pakistan: biryani, nihari, chicken karahi, gulab jamun
* Palestine: maqluba, musakhan, falafel
* Panama: sancocho<ref name="Joe2" />
* Paraguay: Sopa paraguaya
* Peru: ceviche, pollo a la brasa
* Philippines: adobo,<ref name="CNNP2017" /><ref name="PhilStar2018" /><ref name="Gapultos2013" /> sinigang,<ref name="CNNP2017" /><ref name="Gapultos2013" /> sisig,<ref name="CNNP2017" /> pancit,<ref name="CNNP2017" /> halo-halo,<ref name="PhilStar2018" /> lechon
* Poland: bigos,<ref name="Joe2" /> pierogi, kotlet schabowy,
* Portugal: bacalhau, caldo verde, cozido à portuguesa,<ref name="Joe2" /><ref name="Holland" /><ref name="Poelzl" /> Pastel de Belem, Sardinha Assada (Grilled Sardines)
=== Q ===
* Qatar: machboos
=== R ===
* Romania: mămăligă, sarmale, mici
* Russia: beef stroganoff, chicken Kiev, pierogi, borscht, shchi,<ref name="Motion" /> Kasha,<ref name="Motion" /> pelmeni,<ref name="Joe2" /> pirozhki,<ref name="Pokhlyobkin_Pirogi" /> Olivier salad, blini
* Rwanda: ibihaza
=== S ===
[[https://en.wikipedia.org/wiki/File:Kräftskiva-2.jpg|thumb|Swedish crayfish called Kräftskiva]]
* San Marino: torta tre monti
* Saudi Arabia: saleeg, kabsa, jareesh, maqshus
* Senegal: thieboudienne<ref name="Joe2" />
* Serbia: ćevapčići, pljeskavica, gibanica (pastry), Karađorđeva steak, sarma, pasulj
* Singapore: chilli crab, Hainanese chicken rice, Hokkien mee
* Slovakia: pirohy, bryndzové halušky
* Slovenia: cremeschnitte, buckwheat dumplings (particularly štruklji), Idrijski žlikrofi, Carniolan sausage
* Somalia: bariis Iskukaris
* South Africa: bobotie<ref name="Crais McClendon 2013 p. 64" />
* Spain: tortilla de patatas
** Asturias: cachopo
** Catalonia: pa amb tomaquet
** Galicia: polbo á feira
** Madrid: churro
** Valencia: paella
* Sri Lanka: rice and curry, kottu<ref name="Herald2" />
* Suriname: pom
* Sweden: köttbullar,<ref name="swedentravelnet.com" /><ref name="Joe2" /> kräftskiva,<ref name="swedentravelnet.com" /> surströmming (fermented Baltic herring), pickled herring with potatoes, ostkaka, smörgåstårta (savory sandwich cake) and kebab pizza.
* Switzerland: fondue, muesli, raclette, rösti (core national dishes). Other dishes: cervelat (national sausage),<ref name="NYT2008" /><ref name="Joe2" /> Zürcher geschnetzeltes,<ref name="BBCGood" /> cordon bleu
* Syria: kibbeh<ref name="Geographic2" />
=== T ===
[[https://en.wikipedia.org/wiki/File:Tom_yam_kung_maenam.jpg|thumb|Tom yum kung, national dish of Thailand]]
* Tajikistan: osh palov,<ref name="Tajik" /> qurutob<ref name="Tajik" />
* Taiwan: beef noodle soup, minced pork rice
* Tanzania: chipsi mayai
* Thailand: pad thai, pad gaprao, tom yum kung, som tam
* Togo: fufu
* Tonga: 'ota 'ika
* Trinidad and Tobago: doubles, pelau, bake and shark, Roti
** Tobago: curry crab and dumplings
* Tunisia: couscous,<ref name="Joe2" /> brik/bric
* Turkey: doner kebab, dürüm, kuru fasulye with pilaf, kebap, baklava, simit, kapuska
* Tuvalu: pulaka
=== U ===
[[https://en.wikipedia.org/wiki/File:Traditional.Sunday.Roast-01.jpg|thumb|A Sunday roast – in this example, roast beef with mashed potatoes, vegetables is a national dish of the United Kingdom – here with Yorkshire pudding marking this variation as English.]]
* Uganda: matooke<ref name="National2" />
* Ukraine: borscht,<ref name="Besussenko_Borscht" /><ref name="Pokhlyobkin_Dict_Borscht" /> varenyky<ref name="Besussenko_Varenyky" /><ref name="Pokhlyobkin_Dict_Varenyky" />
* United Arab Emirates: harees, shuwa<ref name="AE" />
* United Kingdom: a "full" fry-up breakfast, Fried chicken, fish and chips Sunday roast (especially roast beef), chicken tikka masala,, potato crisps
** England: Melton Mowbray pork pies, crumpets, custard, apple pie, rhubarb crumble, pudding: (black pudding, steak and kidney pudding, Yorkshire pudding, plum pudding, spotted dick), trifle
*** Cornwall: Cornish pasties
*** Devon: Devonshire cream tea, pasty
** Northern Ireland: Barmbrack, boxty, champ, Ulster fry
** Scotland: Burns supper of haggis with neeps and tatties, and scotch whisky, Arbroath smokies, kippers, kedgeree, Cullen skink, cock-a-leekie soup, porridge, rumbledethumps, Clootie dumpling, Cranachan, Dundee cake
*** Shetland Isles: Reestit mutton
** Wales: bara brith, cawl, Glamorgan sausages, laverbread, Tatws Pum Munud, Welsh rarebit, Welsh cakes
* United States: apple pie,<ref name="Walsh2017" /> cheeseburger, hamburger,<ref name="Stewart2016" /> hot dog,<ref name="Walsh2017" /><ref name="Stewart2016" /> fried chicken, Salisbury steak, turkey,<ref name="Stewart2016" /> mashed potatoes and gravy (historical)
** American Samoa: palusami
** Guam: Kelaguen, Spam
** Hawaii: Saimin
** Northern Mariana Islands: Kelaguen
** Puerto Rico: lechon, mofongo, arroz con gandules
** United States Virgin Islands: funji
* Uruguay: chivito<ref name="Joe2" />
* Uzbekistan: Uzbek Plov (also spelled palov and sometimes called osh)
=== V ===
* Vanuatu: laplap
* Vatican City: Fettuccine alla Papalina (unofficial)
* Venezuela: pabellón criollo, arepa
* Vietnam: Pho, Bun cha, Bún bò Huế,
=== Y ===
* Yemen: saltah
=== Z ===
* Zambia: nshima
* Zimbabwe: sadza
== Sommo yizie ==
95njyqb7r44zqelxgrv4qpp4ejpjrpe
62883
62882
2026-07-23T15:00:39Z
Edith Tangkur
310
Add reference
62883
wikitext
text/x-wiki
A '''national dish''' e la bondirii booree kaŋa naŋ maŋ manna paaloŋ kaŋa deme bondirii. <ref name=":0">https://web.archive.org/web/20161014060413/http://www.nationalgeographic.com/travel/top-10/national-food-dishes/</ref>Bondirii kaŋa na baŋ de la ka o e paaloŋ bondirii a yi yɛlɛ tɛɛtɛɛ mine zuiŋ.
* O e la bondiraa naŋ are ziyeni, a maŋ maale ne la a yi bommaale tɛɛtɛɛ naŋ bebe a kyɛ na baŋ maale maaloo zaa, a seŋ ''fruits de mer'', ka west coast a France<ref name=":0" /> poɔ maŋ di.
* O maŋ taa la bommaale mine naŋ maŋ yɛrɛɛ lɛ, a seŋ paprika a European deme naŋ kɔ Pyrenees.<ref name=":0" />
* O maŋ baŋ e la saaŋkoŋ tigiri bondiraa naŋ maŋ paale ba lesiri yeltuuri poɔ a seŋ, barbecues a summer camp poɔ bee fondue a dinner parties—bees poɔ a saaŋkoŋ yeltuuri poɔ a seŋ Korban Pesach bee Iftar diibu.<ref name=":0" />
* Ba de o la ka o e national bondirii, a teŋɛ deme meŋɛ zie, a seŋ a fondue a Swiss Cheese Union naŋ e ka o yɛlɛ yi gbaŋgbale ka o e a Switzerland deme bondirii (Schweizerische Käseunion) a 1930s poɔ.<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-Janer2008_2-1</ref>
== A paaloŋ ==
A ama ba e bondirii ba naŋ de ka a e national bondirii, kyɛ a e la bondirii mine ba naŋ da teɛre ka a e national bondirii.<ref>https://doi.org/10.1007%2FBF00250241</ref>
'''A'''
* Afghanistan: kabuli palaw<ref>https://web.archive.org/web/20100903190418/http://www.tastedefined.com/2009/11/kabuli-pulao-with-raisins-and-carrots.html</ref>
* Albania: tavë kosi,<ref>https://www.bbc.co.uk/food/recipes/albanian_baked_lamb_with_92485</ref> flia
* Algeria: couscous,<ref name=":1">https://www.joe.co.uk/food/the-national-dish-of-every-country-at-the-world-cup-ranked-from-worst-to-best-183729</ref> rechta
* Andorra: escudella i carn d'olla<ref>https://web.archive.org/web/20201027125553/https://theculturetrip.com/europe/andorra/articles/the-10-most-traditional-dishes-from-andorra/</ref>
* Angola: moamba de galinha<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-8</ref>
* Antigua ane Barbuda: fungee ane pepperpot
* Argentina: asado,<ref>https://web.archive.org/web/20131203103920/http://viaresto.com/Notas/El-asado-660.aspx</ref><ref name=":1" /> empanada,<ref>https://www.lanacion.com.ar/lifestyle/el-mapa-definitivo-empanadas-argentinas-sus-14-nid2175466</ref> matambre, locro<ref>https://books.google.com/books?id=N78aCgAAQBAJ&q=national+dish</ref><ref>https://www.heraldtribune.com/story/news/2006/01/19/world-traveler-offers-tips-for-making-argentinian-specialty/28457449007/</ref><ref>https://web.archive.org/web/20210203082626/https://alanitrading.com/2020/04/21/how-different-countries-use-beef</ref><ref>https://web.archive.org/web/20080727003909/http://www.argentina.ar/_es/turismo/C791-gastronomia.php</ref>
* Armenia: khorovats, harisa (ta vɛŋ ka buriburi kpɛ neŋ a North African pepper paste harissa)
* Aruba: Keshi yena<ref name=":2">https://www.aljazeera.com/indepth/features/2013/05/201355102059629831.html</ref><ref>https://www.caribbeanemagazine.com/single-post/aruba-and-curacao-s-national-dish-keshi-yena-recipe</ref>
* Australia: roast lamb,<ref>https://web.archive.org/web/20131006180221/https://www.sunshinecoastdaily.com.au/news/roast-lamb-crowned-australias-national-dish/1781137/</ref> meat pie,<ref>https://www.theguardian.com/commentisfree/2015/jan/02/the-question-that-wont-die-is-the-meat-pie-australias-national-dish</ref><ref>https://web.archive.org/web/20100127182253/http://www.weightwatchers.com.au/util/art/index_art.aspx?tabnum=1&art_id=42481</ref><ref>https://www.sunstar.com.ph/article/13106/Local-News/Aussie-meat-pies</ref>Vegemite on toast<ref>https://www.independent.co.uk/news/world/australasia/cautious-change-to-australias-national-dish-1705216.html</ref>
* Austria: Wiener schnitzel<ref name=":3">https://web.archive.org/web/20161014060413/http://www.nationalgeographic.com/travel/top-10/national-food-dishes/</ref>
* Azerbaijan: dolma<ref name=":2" />
'''B'''
* Bahamas: crack conch ne peas ane mui<ref>https://web.archive.org/web/20100622063510/http://www.caribbeanamericanfoods.com/?page=island_dishes</ref>
* Bahrain: kabsa<ref>https://www.daringgourmet.com/chicken-machboos-bahraini-chicken-rice/</ref><ref>https://web.archive.org/web/20110610155501/http://www.worldcuisine.org.uk/tag/bahrain-national-dish</ref>
* Bangladesh: mui ne zombo (particularly ilish)<ref>https://web.archive.org/web/20101203204751/http://www.salon.com/life/food/eat_drink/2007/07/03/eating_india/</ref>
* Barbados: cou-cou ane zoŋ ɛgeraa<ref>https://ingmar.app/blog/national-dish-of-belarus-draniki/</ref>
* Belarus: draniki<ref name=":3" />
* Belgium: frites<ref>https://www.gulftoday.ae/lifestyle/2020/03/15/belgiums-national-dish-fried-potato-sticks-are-spared-from-the-national-coronavirus-lockdown</ref> (o maŋ de ne la mussels bee steak), <ref>https://archive.org/details/isbn_9781741048551</ref><ref name=":1" />carbonade flamande,waterzooi,<ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref> chocolate mousse, <ref name=":4">https://www.researchgate.net/publication/51094975</ref>Belgian waffle<ref name=":4" />
* Belize: mui ne bɛŋa<ref>[https://www.visitflanders.com/en/themes/flemish-food/flemish-dishes-and-specialities/flemish-dishes/belgian-chocolate-mousse/#:~:text=Chocolate%20mousse%20is%20one%20of,one%20and%20only%20national%20dessert. https://www.visitflanders.com/en/themes/flemish-food/flemish-dishes-and-specialities/flemish-dishes/belgian-chocolate-mousse/#:~:text=Chocolate%20mousse%20is%20one%20of,one%20and%20only%20national%20dessert.]</ref>
* Benin: kuli-kuli<ref>https://blog.remitly.com/lifestyle-culture/nationaldishes-belgian-waffles-belgium/</ref>
* Bhutan: ema datshi<ref>https://www.belizeadventure.ca/belizean-food-typical-and-traditional-things-to-try/</ref>
* Bolivia: salteñas<ref>https://web.archive.org/web/20181117233846/https://www.bhutan.travel/page/food</ref>
* Bosnia<ref>https://www.newcastleherald.com.au/story/2581479/the-worlds-12-best-national-dishes/</ref> and Herzegovina:<ref>https://web.archive.org/web/20101118053858/http://myhungrytum.com/2010/02/14/bosanksi-lonac-bosnia-herzegovina-national-dish-day-38dish-21/</ref> Bosnian pot,<ref>https://web.archive.org/web/20210119182350/https://theculturetrip.com/europe/bosnia-herzegovina/articles/the-21-best-dishes-in-bosnia-and-herzegovina/</ref><ref>https://www.croatiaweek.com/cevapi-the-dish-driving-people-crazy-for-decades/</ref> ćevapi, burek<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-1-74220-593-9</ref>
* Botswana: seswaa<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-1-74220-593-9</ref>
* Brazil: feijoada Picanha<ref>https://web.archive.org/web/20190705182246/https://sistemas.mre.gov.br/kitweb/datafiles/KualaLumpur/en-us/file/revistaing13-mat06.pdf</ref><ref name=":1" />
* Brunei: ambuyat<ref>https://web.archive.org/web/20140404180705/http://bt.com.bn/life/2009/02/21/fostering_family_ties_with_ambuyat_feasts</ref><ref>http://www.bt.com.bn/art-culture/2011/01/08/ambuyat-our-iconic-heritage</ref>
* Bulgaria: Shopska salad<ref>https://www.youngpioneertours.com/bulgarian-cuisine/</ref>, banitsa<ref>https://www.tasteatlas.com/banitsa</ref>
* Burkina Faso: riz gras
* Burundi: boko boko<ref>https://worldfood.guide/dish/boko_boko/</ref>
'''C'''
* Cambodia: amok zombo,<ref>http://www.canadianliving.com/blogs/food/2009/06/30/does-canada-have-a-national-dish/</ref><ref>https://grantourismotravels.com/cambodian-fish-amok-recipe/</ref> ''num banhchok'', <ref>https://grantourismotravels.com/nom-banh-chok-fermented-rice-noodles-cambodia/</ref>''samlar kako''<ref>http://www.tourismcambodia.com/tripplanner/food-and-drink/khmer-foods.htm</ref><ref>https://grantourismotravels.com/samlor-korko-recipe-cambodian-soup/</ref>
* Cameroon: ndolé<ref>https://www.nytimes.com/2008/12/07/nyregion/thecity/07asyl.html?pagewanted=1&ref=thecity</ref>
* Canada: poutine,<ref>https://web.archive.org/web/20110130122239/http://articles.cnn.com/2010-10-02/world/canada.poutine_1_dish-cheese-curds-foie?_s=PM%3AWORLD</ref><ref>https://web.archive.org/web/20110130122239/http://articles.cnn.com/2010-10-02/world/canada.poutine_1_dish-cheese-curds-foie?_s=PM%3AWORLD</ref><ref>https://web.archive.org/web/20110322002206/http://www.torontolife.com/daily/daily-dish/aprons-icons/2010/04/22/is-poutine-canadas-national-food-two-arguments-for-two-against/</ref> donair, butter tarts,<ref>https://alliedpassport.com/blog/national-dish-of-canada/</ref> Nanaimo bar, tourtière<ref>http://www.canadianliving.com/blogs/food/2009/06/30/does-canada-have-a-national-dish/</ref><ref>https://web.archive.org/web/20181226023544/https://torontosun.com/category/life</ref>
* Cape Verde: cachupa
* Central African Republic: baŋkye
* Chad: boule
* Chile: empanada,<ref>https://www.nytimes.com/2009/04/15/dining/15empa.html?_r=0</ref> pastel de choclo,<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-1-55832-249-3</ref><ref>https://www.npr.org/sections/thesalt/2016/07/07/484987260/in-chile-marraqueta-is-the-bread-of-life</ref> marraqueta<ref>https://www.nytimes.com/2009/04/15/dining/15empa.html?_r=0</ref>
* China: Peking duck,<ref>https://web.archive.org/web/20140312000414/http://www.cits.net/china-guide/china-traditions/peking-roast-duck.html</ref> crayfish,<ref>https://www.scmp.com/lifestyle/food-drink/article/2153030/how-american-crayfish-invaded-chinese-hearts-and-stomachs-and</ref><ref>https://www.goldthread2.com/food/how-louisiana-crayfish-became-china-national-dish/article/3023711</ref> dog-toloŋ, dumpling, malaxiangguo, dim sum,<ref>https://www.independent.co.uk/news/world/asia/hong-kong-warns-citizens-off-unhealthy-dim-sum-5346000.html</ref> kaolengmian, tanghulu
* Colombia: ajiaco,<ref>https://www.telegraph.co.uk/recipes/0/slow-cooker-colombian-potato-chicken-soup-recipe/</ref> bandeja paisa<ref>https://web.archive.org/web/20181226023541/http://www.saludcolombia.com/actual/salud60/colabora.htm</ref>
* Comoros: Langouste a la vanille (vanilla lobster)<ref>https://www.saveur.com/lobster-vanilla-sauce-recipe</ref>
* Democratic Republic a Congo poɔ: poulet à la moambé<ref name=":5">https://www.independent.co.uk/travel/africa/192part-guide-to-the-world-democratic-republic-of-congo-166497.html</ref>
* Republic of the Congo: poulet moambé<ref name=":5" />
* Costa Rica: casado, chifrijo (chicharrón bee di neŋ doba-nɛne naŋ kyēē be paa ane bɛŋɛ, gbɛɛyaga bɛnzeere bee bɛnsɔglɔ), mui peɛlaa ane pico de gallo (o na baŋ di ne la avocado ane/bee kamaana chips), gallo pinto,<ref name=":1" />olla de carne (naabo nɛne zeɛre ane zɛva-tɛɛtɛɛ).
* Croatia: zagorski štrukli, pašticada, sinjski arambaši, soparnik, rapska torta, imotska torta, rafioli,<ref>https://registar.kulturnadobra.hr/</ref> jota
* Cuba: ropa vieja<ref>https://www.salon.com/2018/05/30/a-recipe-for-cubas-national-dish-ropa-vieja-or-rags-from-the-new-book-cuban-flavor/</ref><ref>https://web.archive.org/web/20210415015906/https://wearemitu.com/culture/a-history-of-ropa-vieja-one-of-cubas-most-famous-and-forbidden-national-dishes/</ref>
* Cyprus: souvla,<ref>https://nt.gov.au/community/multicultural-communities/community-profiles/greek-cypriot</ref> kleftiko,<ref>https://apnews.com/832cf765ae944b988d7e2cdb9ca50931</ref><ref>https://web.archive.org/web/20210521211059/https://www.flyedelweiss.com/EN/destinations/paphos/Pages/paphos-culinary.aspx</ref> trachanás<ref>https://en.wikipedia.org/wiki/William_Woys_Weaver</ref>
* Czech Republic: vepřo knedlo zelo (doba-nɛnseɛraa ane roast dumplings ane sauerkraut), <ref>http://www.radio.cz/en/section/letter/czech-eating-habits-take-a-turn-for-the-better</ref>svíčková,<ref>https://web.archive.org/web/20200812130250/https://www.urbanadventures.com/blog/ultimate-czech-food-guide/</ref> paštika
'''D'''
* Denmark: stegt flæsk,<ref>https://web.archive.org/web/20141018161213/http://danskernesmad.dk/nationalret/</ref><ref name=":1" /><ref name=":6">https://www.thelocal.dk/20141120/denmark-declares-its-first-national-dish</ref> smørrebrød,<ref>https://www.npr.org/2011/01/04/132627711/the-art-of-the-danish-open-face-sandwich</ref><ref>https://www.npr.org/2011/01/04/132627711/the-art-of-the-danish-open-face-sandwich</ref><ref name=":6" /> flæskesteg
** Faroe Islands: Skerpikjøt
** Greenland: suaasat
* Djibouti: skoudehkaris
* Dominica: taŋazu noore (dakoroŋ), callaloo<ref>https://dominicanewsonline.com/news/homepage/news/general/breaking-news-callaloo-dominicas-new-national-dish/</ref>
* Dominican Republic: La bandera (mui, bɛŋa ane nɛne)<ref>https://www.nytimes.com/2020/01/02/travel/what-to-do-36-hours-in-santo-domingo-dominican-republic.html</ref>
E
* Ecuador: encebollado,<ref>https://web.archive.org/web/20160304051630/http://www.montanita.com/noticia-restaurantes/el-encebollado/10523</ref> guatitas,<ref>https://web.archive.org/web/20181226023555/http://ecuador.pordescubrir.com/la-guatita-ecuatoriana.html</ref> fanesca
* Egypt: ful medames,<ref>https://edition.cnn.com/travel/article/africa-food-dishes/index.html</ref> kushari, molokhiya,<ref>https://books.google.com/books?id=zzccAQAAMAAJ</ref> ''taʿamiya''<ref>https://en.wikipedia.org/wiki/Claudia_Roden</ref>
* El Salvador: pupusa<ref>https://web.archive.org/web/20210923085057/https://www.asamblea.gob.sv/decretos/details/1535</ref><ref>https://web.archive.org/web/20180623144409/http://www.cultura.gob.sv/secultura-invita-a-celebrar-el-dia-nacional-de-la-pupusa/</ref>
* Equatorial Guinea: Succotash
* Eritrea: zigini ne injera<ref>https://www.independent.co.uk/travel/africa/192part-guide-to-the-world-eritrea-633664.html</ref>
* Estonia: kama<ref>https://web.archive.org/web/20071217022649/http://www.eestitoit.ee/pages.php/010201%2C8</ref>
* Eswatini: Shisa Nyama
* Ethiopia: doro wat ane injera<ref>https://www.washingtonpost.com/archive/lifestyle/food/2005/05/18/ethiopias-national-dish/c199dd20-163d-4421-b54f-1602aa139132/</ref>
'''F'''
* Fiji: kokoda (Fijian ceviche)<ref>https://www.internationalcuisine.com/fiji-kokoda/</ref>
* Finland: rye boroboro,<ref>http://yle.fi/uutiset/osasto/news/the_people_have_spoken_-_rye_bread_is_the_national_food/9413195</ref> Karelian pie, karjalanpaisti, lohikeitto, joulutorttu
* France: escargot, pot-au-feu,<ref>https://www.nytimes.com/2004/02/18/dining/four-nations-where-forks-do-knives-work.html?pagewanted=2</ref><ref>http://away.com/feature/excerpt/national-geographic/top-ten-great-national-dishes-1.html?page=1</ref> beef bourguignon,<ref name=":7">https://www.lonelyplanet.com/articles/beef-bourguignon-france</ref><ref>https://www.nationalgeographic.co.uk/travel/2020/08/the-story-behind-the-classic-french-dish-boeuf-bourguignon</ref> blanquette de veau,<ref name=":7" /> steak frites,<ref name=":7" /> baguette,<ref>https://www.economist.com/1843/2019/01/22/its-crunch-time-for-the-baguette</ref> cassoulet,<ref>https://www.petitfute.com/p1-france/actualite/m17-top-10-insolites-voyage/a22083-les-10-plats-typiques-de-la-gastronomie-francaise.html</ref> cheese,<ref>https://www.parisinsidersguide.com/10-top-cheeses-of-france.html#:~:text=Camembert,the%20list%20at%20number%20one</ref> crêpe,<ref>https://www.thesouthend.wayne.edu/article_6d0bd2f5-d2ce-5291-8a7b-980b948dc12e.html</ref> crème caramel,<ref>https://books.google.com/books?id=_4J6DwAAQBAJ&q=france+%22national+dessert%22&pg=PT91</ref> croissant, poule au pot (dakoroŋ),<ref>https://www.nouvelle-aquitaine-tourisme.com/en/news/traditional-recipe-authentic-poule-au-pot</ref> chou à la crème
*
=== G ===
* Gabon: poulet nyembwe<ref>https://web.archive.org/web/20111006195823/http://www.gabonmagazine.com/images/G10-ENGLISH/G10.palmoil.p18-23.pdf</ref>
* The Gambia: domoda<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-0-313-35911-8</ref>
* Georgia: khachapuri,<ref>https://web.archive.org/web/20210121215413/http://georgiatoday.ge/news/14205/Khachapuri-Granted-Cultural-Heritage-Status</ref><ref>https://web.archive.org/web/20111007010149/http://www.investor.ge/issues/2010_2/02.htm</ref><ref>http://www.iset-pi.ge/index.php?article_id=715</ref> khinkali<ref>https://www.georgianwine.uk/georgian-food-tastes-of-the-silk-road/</ref>
* Germany: schweinshaxe, bratwurst, sauerbraten,<ref>https://web.archive.org/web/20100707024527/http://www.germanfoods.org/schools/delicious/traditionaldishes.cfm</ref> döner kebab,<ref>https://www.nytimes.com/1996/06/26/garden/for-germans-a-kebab-filled-with-social-significance.html</ref> currywurst,<ref>https://www.nytimes.com/2011/01/27/world/europe/27berlin.html</ref> eisbein with sauerkraut<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-118</ref><ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-119</ref><ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-120</ref>
* Ghana: fufu, jollof rice
* Greece: horiatiki,moussaka, <ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-Michelin_121-0</ref>fasolada<ref name=":8">[https://greece.greekreporter.com/2018/06/29/what-is-the-national-dish-of-greece/#:~:text=In%20Greece%2C%20the%20national%20dishes,region%20or%20island%20in%20Greece. https://greece.greekreporter.com/2018/06/29/what-is-the-national-dish-of-greece/#:~:text=In%20Greece%2C%20the%20national%20dishes,region%20or%20island%20in%20Greece.]</ref> souvlaki, <ref name=":8" />gyros, <ref name=":8" />magiritsa, <ref name=":8" />kokoretsi<ref name=":8" />
* Grenada: oil down
* Guatemala: pepián<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-123</ref>
* Guinea: poulet yassa
* Guinea-Bissau: caldo de mancarra
* Guyana: pepperpot and chicken curry<ref>http://www.gov.gd/articles/grenada_oil_down.html</ref>
=== H ===
[[https://en.wikipedia.org/wiki/File:Goulash_in_Prague.jpg|right|thumb|Hungarian goulash]]
* Haiti: griot, soup joumou
* Honduras: baleada
* Hong Kong: pineapple bun, dim sum
* Hungary: goulash<ref>https://web.archive.org/web/20251005093903/https://theculturetrip.com/central-america/guatemala/articles/the-10-most-traditional-dishes-from-guatemala</ref><ref name=":9">https://web.archive.org/web/20131004213347/http://www.caribbeanamericanfoods.com/?page=island_dishes</ref>
=== I ===
[[https://en.wikipedia.org/wiki/File:Sate-2.JPG|thumb|Satay, one of the national dishes of Indonesia]]
[[https://en.wikipedia.org/wiki/File:Espaguetis_carbonara.jpg|thumb|A dish of pasta ({{lang|it|[[carbonara]]}}). Pasta is considered one of the national dishes of Italy]]
* Iceland: lamb, <ref>https://icelandicfood.is/the-national-dish-of-iceland/</ref><ref>https://icelandmonitor.mbl.is/news/news/2015/04/01/what_is_iceland_s_national_dish/</ref><ref>https://www.vogue.com/article/what-to-eat-in-iceland-local-food</ref>hákarl<ref>https://web.archive.org/web/20200918082328/https://theculturetrip.com/europe/iceland/articles/how-fermented-shark-became-the-national-dish-of-iceland/</ref><ref name=":9" /><ref name=":1" />
* India: Khichdi, Chaat, butter chicken, biryani, Dal, dosa, idli<ref>https://www.outlookindia.com/traveller/cuisine/biryani-indias-national-dish</ref><ref>https://www.ndtv.com/food/fictitious-says-union-minister-harsimrat-kaur-badal-khichdi-wont-be-the-national-dish-1769941</ref><ref>https://www.clubmahindra.com/blog/food/7-dishes-that-can-be-the-national-food-of-india</ref><ref>https://www.scmp.com/magazines/post-magazine/travel/article/2128642/how-khichdi-mix-lentils-and-rice-became-indias</ref>
* Indonesia: nasi goreng,<ref name=":10">https://travel.kompas.com/read/2018/04/10/171000627/kemenpar-tetapkan-5-makanan-nasional-indonesia-ini-daftarnya</ref><ref name=":11">https://web.archive.org/web/20181226023403/http://travel.cnn.com/explorations/eat/40-foods-indonesians-cant-live-without-327106</ref> mie goreng<ref>https://keasberry.com/recipes/mie-goreng-indonesian-fried-noodles/</ref>, tumpeng, <ref>https://www.thejakartapost.com/news/2014/02/10/celebratory-rice-cone-dish-represent-archipelago.html</ref>satay,<ref name=":10" /><ref name=":11" />soto,<ref name=":10" /><ref>http://eatingasia.typepad.com/eatingasia/2009/03/soto-crawl.html</ref> rendang,<ref name=":10" /> gado gado<ref name=":10" />
* Iran: abgoosht,<ref name=":1" />chelo kabab,<ref>https://web.archive.org/web/20181226023540/https://www.thespruceeats.com/chelo-kebab-recipe-2355640</ref> ghormeh sabzi <ref>https://web.archive.org/web/20210904093513/https://iranian.com/2020/03/20/delicious-najmieh-batmanglij-transforms-irans-national-dish-into-a-pizza/</ref>Fesenjan
* Iraq: masgouf,<ref>https://www.thetimes.com/travel/destinations/uk-travel/england/london-travel/imams-put-fatwa-on-carp-caught-in-tigris-bbs2qxdcrgf</ref> dolma, Iraqi kebab, quzi
* Ireland: soda bread,<ref>https://www.independent.ie/irish-news/top-breakfast-baguette-rolls-into-irish-history-26445568.html</ref> butter,<ref>https://web.archive.org/web/20160131081749/http://britishfood.about.com/od/introtobritishfood/f/questions.htm</ref><ref>https://www.scmp.com/news/world/europe/article/3064848/coronavirus-french-corona-pizza-video-outrages-italians-prompting</ref> Irish stew
* Israel: falafel (served in pita),<ref>https://web.archive.org/web/20180307151129/https://www.haaretz.com/israel-s-national-food-no-matter-where-it-started-1.5216693</ref><ref>https://web.archive.org/web/20081024212900/http://www.myjewishlearning.com/culture/food/IsraeliFood/FalafelRecipe.htm</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref> Israeli salad,<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-151</ref> <ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-152</ref>meorav Yerushalmi,<ref>https://nationalpost.com/life/food/cook-this-green-shakshuka-with-chard-kale-spinach-and-feta-from-shuk</ref> sabich, Ptitim
* Italy: pasta,<ref>https://news.bbc.co.uk/2/hi/europe/6992444.stm</ref> <ref>https://www.scmp.com/news/world/europe/article/3064848/coronavirus-french-corona-pizza-video-outrages-italians-prompting</ref>pizza,<ref>https://books.google.com/books?id=xeN5DwAAQBAJ&q=pizza+national+dish&pg=PA34</ref><ref>https://www.cedigros.com/rubriche/italia-in-tavola/7459/risotto.html</ref> risotto, mozzarella,<ref>https://www.lapecorella.it/2023/10/24/formaggi-nella-cucina-italiana/</ref> Parmigiano Reggiano,<ref>https://www.parmigianoreggiano.com/it/news/parmigiano-reggiano-italiano</ref> Italian wine
* Ivory Coast: atcheke<ref>https://books.google.com/books?id=iE6DAwAAQBAJ&q=%22national+dish%22+zimbabwe&pg=PA177</ref>
=== J ===
[[https://en.wikipedia.org/wiki/File:Sushi_(1441234074).jpg|right|thumb|Sushi, Japan]]
* Jamaica: Ackee and saltfish<ref name=":13">https://web.archive.org/web/20110121124324/http://away.com/feature/excerpt/national-geographic/top-ten-great-national-dishes-1.html?page=2</ref>
* Japan: sushi,<ref>[https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known. https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known.]</ref> Japanese curry,<ref>[https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known. https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known.]</ref>ramen,<ref>https://www.theguardian.com/world/2010/jun/18/ramen-japan-national-dish</ref> tempura,<ref>https://web.archive.org/web/20210521211058/https://www.nhk.or.jp/dwc/food/articles/42.html</ref> wagashi,<ref>https://www.bangkokpost.com/life/social-and-lifestyle/279145/sweet-treats-from-japan</ref> sashimi, miso soup
* Jordan: mansaf<ref>https://web.archive.org/web/20170726011901/http://waleg.com/kitchen/archives/000912.html</ref><ref>http://www.kinghussein.gov.jo/facts3.html</ref>
=== K ===
[[https://en.wikipedia.org/wiki/File:Korean.cuisine-Kimchi-Jeotgal-01.jpg|right|thumb|Korean kimchi]]
* Kazakhstan: beshbarmak<ref>https://weproject.media/en/articles/detail/how-beshbarmak-is-served-in-different-regions-of-kazakhstan/</ref>
* Kenya: ugali with sukuma wiki,<ref name=":12">https://en.wikipedia.org/wiki/Kivutha_Kibwana</ref>githeri,<ref name=":12" /> chapati,<ref name=":12" /><ref>https://www.standardmedia.co.ke/evewoman/food/article/2001231754/chapati-edges-ugali-out-of-table-in-kenya-as-the-rich-salivate-over-poor-mans-diet</ref>nyama choma<ref>https://books.google.com/books?id=TTf0Aki6AUQC&q=national+dish+&pg=PA90</ref>
* Kiribati: Palusami
* Korea, North: raengmyŏn, <ref>https://www.eater.com/2018/9/25/17855140/pyongyang-naengmyeon-jungsik-yim-north-korea-cold-noodles</ref>kimchi<ref>https://edition.cnn.com/travel/article/north-korea-kimchi-festival/index.html</ref>
* Korea, South: kimchi,<ref>https://www.bbc.com/news/world-asia-25840493</ref> bulgogi, <ref>https://www.thedailymeal.com/10-national-dishes-around-world/6514</ref>bibimbap, <ref>http://www.theaustralian.com.au/life/travel/pyeongchang-winter-olympics-the-next-cool-spot/news-story/4f5f9f25423111d937a01069722c0a37</ref>jajangmyeon, <ref>https://www.jamesbeard.org/recipes/jajangmyun-noodles-with-black-bean-sauce</ref><ref>https://www.smithsonianmag.com/arts-culture/koreas-black-day-when-sad-single-people-get-together-and-eat-black-food-16537918/?no-ist</ref>bingsu,<ref>https://www.straitstimes.com/lifestyle/food/beat-the-heat-with-bingsu-south-koreas-national-dessert-of-shaved-ice-milk-condensed</ref> tteokbokki
* Kosovo: flia<ref>https://anoregoncottage.com/making-flia-a-national-dish-of-kosovo/</ref>
* Kuwait: Machboos Laham
* Kyrgyzstan: beshbarmak<ref>https://www.baibol.kg/tourism-in-kyrgyzstan/traditions/national-meal-beshbarmak/</ref>
=== L ===
[[https://en.wikipedia.org/wiki/File:Flickr_-_cyclonebill_-_Tabbouleh.jpg|right|thumb|Tabbouleh, Lebanon]]
* Laos: larb/laap,<ref>https://www.scmp.com/magazines/style/leisure/article/3046167/thai-food-or-lao-5-typical-dishes-laos-will-help-you-see</ref> sticky rice,<ref>https://www.smithsonianmag.com/travel/a-taste-of-sticky-rice-laos-national-dish-136291/</ref> tam mak hoong<ref>https://www.dw.com/en/papaya-salad-with-shrimp-laos/a-37837972</ref>
* Latvia: layered rye bread, <ref>https://eatingtheworld.net/2017/11/17/latvias-national-dessert/</ref>sklandrausis, <ref>https://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:C:2012:349:0023:0027:EN:PDF#page=3</ref>Jāņi cheese,<ref>https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:52015XC0620(01)&from=EN</ref> Grey peas
* Lebanon: kibbeh,<ref name=":13" /> tabbouleh<ref>http://www.sourat.com/lebanese_recipes.htm</ref>
* Lesotho: Pap-pap
* Liberia: dumboy
* Libya: Couscous
* Liechtenstein: käsknöpfle
* Lithuania: bigos, cepelinai,<ref>https://books.google.com/books?id=NTo6c_PJWRgC&pg=RA3-PA226</ref> <ref>https://books.google.com/books?id=pDdqGoXvSvYC&pg=PA61</ref>šaltibarščiai<ref>https://www.themayor.eu/en/lithuania-welcomes-tourists-with-pink-soup-carpet</ref>
* Luxembourg: Judd mat Gaardebounen<ref>http://www.mycitycuisine.org/wiki/Judd_mat_Gaardebounen</ref>
=== M ===
[[https://en.wikipedia.org/wiki/File:Nasi_Lemak,_Mamak,_Sydney.jpg|thumb|Nasi lemak, a national dish of Malaysia.]]
* Madagascar: romazava<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-194</ref>
* Malaysia: nasi lemak,<ref>https://web.archive.org/web/20140702211527/http://www.thestar.com.my/Travel/Malaysia/2011/04/07/Nasi-lemak-our-national-dish.aspx/</ref> satay<ref>https://www.nytimes.com/1984/12/02/travel/in-malaysia-spicy-satay.html</ref><ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-197</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref>
* Maldives: mas huni
* Mali: tiguadege na
* Malta: stuffat tal-fenek<ref>https://roadsandkingdoms.com/2018/history-malta-7-dishes/</ref>
* Marshall Islands: Barramundi cod, macadamia nut pie
* Mauritius: dholl puri (flatbread stuffed with lentils)<ref>https://www.getaway.co.za/food/25-eat-drink-mauritius/</ref><ref>https://books.google.com/books?id=4gbBDwAAQBAJ&q=mauritius+national+dish&pg=PT231</ref>
* Mexico: taco,<ref name="Joe" /> mole poblano, chiles en nogada
* Moldova: mămăligă, ghivetch
* Monaco: barbagiuan
* Mongolia: buuz
* Montenegro: njeguški pršut
* Morocco: couscous,<ref name="Joe" /> tagine
* Myanmar: mohinga, lahpet thoke<ref name="Haber" />
=== N ===
[[https://en.wikipedia.org/wiki/File:Dhido.jpg|thumb|Dhido, Nepal]]
* Nauru: coconut fish
* Nepal: Gundruk and Dhido
* Netherlands: stamppot, soused herring with onion and pickles
* New Zealand: meat pie, bacon and egg pie, lamb, pavlova<ref name="Pavlova" />
* Nicaragua: gallo pinto, nacatamal, vigorón
* Niger: dambou
* Nigeria: tuwon shinkafa,<ref name="Joe" /> Jollof rice,<ref name="Africa" /> pounded yam and egusi soup<ref name="Africa" /><ref name="National" />, Indomie instant noodles
* North Macedonia: tavče gravče
* Norway: fårikål
=== O ===
* Oman: shuwa
*
=== P ===
[[https://en.wikipedia.org/wiki/File:Pork_adobo_with_shallots.jpg|thumb|Philippine adobo, a national dish of the Philippines]]
* Pakistan: biryani, nihari, chicken karahi, gulab jamun
* Palestine: maqluba, musakhan, falafel
* Panama: sancocho<ref name="Joe2" />
* Paraguay: Sopa paraguaya
* Peru: ceviche, pollo a la brasa
* Philippines: adobo,<ref name="CNNP2017" /><ref name="PhilStar2018" /><ref name="Gapultos2013" /> sinigang,<ref name="CNNP2017" /><ref name="Gapultos2013" /> sisig,<ref name="CNNP2017" /> pancit,<ref name="CNNP2017" /> halo-halo,<ref name="PhilStar2018" /> lechon
* Poland: bigos,<ref name="Joe2" /> pierogi, kotlet schabowy,
* Portugal: bacalhau, caldo verde, cozido à portuguesa,<ref name="Joe2" /><ref name="Holland" /><ref name="Poelzl" /> Pastel de Belem, Sardinha Assada (Grilled Sardines)
=== Q ===
* Qatar: machboos
=== R ===
* Romania: mămăligă, sarmale, mici
* Russia: beef stroganoff, chicken Kiev, pierogi, borscht, shchi,<ref name="Motion" /> Kasha,<ref name="Motion" /> pelmeni,<ref name="Joe2" /> pirozhki,<ref name="Pokhlyobkin_Pirogi" /> Olivier salad, blini
* Rwanda: ibihaza
=== S ===
[[https://en.wikipedia.org/wiki/File:Kräftskiva-2.jpg|thumb|Swedish crayfish called Kräftskiva]]
* San Marino: torta tre monti
* Saudi Arabia: saleeg, kabsa, jareesh, maqshus
* Senegal: thieboudienne<ref name="Joe2" />
* Serbia: ćevapčići, pljeskavica, gibanica (pastry), Karađorđeva steak, sarma, pasulj
* Singapore: chilli crab, Hainanese chicken rice, Hokkien mee
* Slovakia: pirohy, bryndzové halušky
* Slovenia: cremeschnitte, buckwheat dumplings (particularly štruklji), Idrijski žlikrofi, Carniolan sausage
* Somalia: bariis Iskukaris
* South Africa: bobotie<ref name="Crais McClendon 2013 p. 64" />
* Spain: tortilla de patatas
** Asturias: cachopo
** Catalonia: pa amb tomaquet
** Galicia: polbo á feira
** Madrid: churro
** Valencia: paella
* Sri Lanka: rice and curry, kottu<ref name="Herald2" />
* Suriname: pom
* Sweden: köttbullar,<ref name="swedentravelnet.com" /><ref name="Joe2" /> kräftskiva,<ref name="swedentravelnet.com" /> surströmming (fermented Baltic herring), pickled herring with potatoes, ostkaka, smörgåstårta (savory sandwich cake) and kebab pizza.
* Switzerland: fondue, muesli, raclette, rösti (core national dishes). Other dishes: cervelat (national sausage),<ref name="NYT2008" /><ref name="Joe2" /> Zürcher geschnetzeltes,<ref name="BBCGood" /> cordon bleu
* Syria: kibbeh<ref name="Geographic2" />
=== T ===
[[https://en.wikipedia.org/wiki/File:Tom_yam_kung_maenam.jpg|thumb|Tom yum kung, national dish of Thailand]]
* Tajikistan: osh palov,<ref name="Tajik" /> qurutob<ref name="Tajik" />
* Taiwan: beef noodle soup, minced pork rice
* Tanzania: chipsi mayai
* Thailand: pad thai, pad gaprao, tom yum kung, som tam
* Togo: fufu
* Tonga: 'ota 'ika
* Trinidad and Tobago: doubles, pelau, bake and shark, Roti
** Tobago: curry crab and dumplings
* Tunisia: couscous,<ref name="Joe2" /> brik/bric
* Turkey: doner kebab, dürüm, kuru fasulye with pilaf, kebap, baklava, simit, kapuska
* Tuvalu: pulaka
=== U ===
[[https://en.wikipedia.org/wiki/File:Traditional.Sunday.Roast-01.jpg|thumb|A Sunday roast – in this example, roast beef with mashed potatoes, vegetables is a national dish of the United Kingdom – here with Yorkshire pudding marking this variation as English.]]
* Uganda: matooke<ref name="National2" />
* Ukraine: borscht,<ref name="Besussenko_Borscht" /><ref name="Pokhlyobkin_Dict_Borscht" /> varenyky<ref name="Besussenko_Varenyky" /><ref name="Pokhlyobkin_Dict_Varenyky" />
* United Arab Emirates: harees, shuwa<ref name="AE" />
* United Kingdom: a "full" fry-up breakfast, Fried chicken, fish and chips Sunday roast (especially roast beef), chicken tikka masala,, potato crisps
** England: Melton Mowbray pork pies, crumpets, custard, apple pie, rhubarb crumble, pudding: (black pudding, steak and kidney pudding, Yorkshire pudding, plum pudding, spotted dick), trifle
*** Cornwall: Cornish pasties
*** Devon: Devonshire cream tea, pasty
** Northern Ireland: Barmbrack, boxty, champ, Ulster fry
** Scotland: Burns supper of haggis with neeps and tatties, and scotch whisky, Arbroath smokies, kippers, kedgeree, Cullen skink, cock-a-leekie soup, porridge, rumbledethumps, Clootie dumpling, Cranachan, Dundee cake
*** Shetland Isles: Reestit mutton
** Wales: bara brith, cawl, Glamorgan sausages, laverbread, Tatws Pum Munud, Welsh rarebit, Welsh cakes
* United States: apple pie,<ref name="Walsh2017" /> cheeseburger, hamburger,<ref name="Stewart2016" /> hot dog,<ref name="Walsh2017" /><ref name="Stewart2016" /> fried chicken, Salisbury steak, turkey,<ref name="Stewart2016" /> mashed potatoes and gravy (historical)
** American Samoa: palusami
** Guam: Kelaguen, Spam
** Hawaii: Saimin
** Northern Mariana Islands: Kelaguen
** Puerto Rico: lechon, mofongo, arroz con gandules
** United States Virgin Islands: funji
* Uruguay: chivito<ref name="Joe2" />
* Uzbekistan: Uzbek Plov (also spelled palov and sometimes called osh)
=== V ===
* Vanuatu: laplap
* Vatican City: Fettuccine alla Papalina (unofficial)
* Venezuela: pabellón criollo, arepa
* Vietnam: Pho, Bun cha, Bún bò Huế,
=== Y ===
* Yemen: saltah
=== Z ===
* Zambia: nshima
* Zimbabwe: sadza
== Sommo yizie ==
tbnk0mbm2o5gsv804zxnp6ma9qjksi9
62884
62883
2026-07-23T16:32:20Z
Edith Tangkur
310
Add reference
62884
wikitext
text/x-wiki
A '''national dish''' e la bondirii booree kaŋa naŋ maŋ manna paaloŋ kaŋa deme bondirii. <ref name=":0">https://web.archive.org/web/20161014060413/http://www.nationalgeographic.com/travel/top-10/national-food-dishes/</ref>Bondirii kaŋa na baŋ de la ka o e paaloŋ bondirii a yi yɛlɛ tɛɛtɛɛ mine zuiŋ.
* O e la bondiraa naŋ are ziyeni, a maŋ maale ne la a yi bommaale tɛɛtɛɛ naŋ bebe a kyɛ na baŋ maale maaloo zaa, a seŋ ''fruits de mer'', ka west coast a France<ref name=":0" /> poɔ maŋ di.
* O maŋ taa la bommaale mine naŋ maŋ yɛrɛɛ lɛ, a seŋ paprika a European deme naŋ kɔ Pyrenees.<ref name=":0" />
* O maŋ baŋ e la saaŋkoŋ tigiri bondiraa naŋ maŋ paale ba lesiri yeltuuri poɔ a seŋ, barbecues a summer camp poɔ bee fondue a dinner parties—bees poɔ a saaŋkoŋ yeltuuri poɔ a seŋ Korban Pesach bee Iftar diibu.<ref name=":0" />
* Ba de o la ka o e national bondirii, a teŋɛ deme meŋɛ zie, a seŋ a fondue a Swiss Cheese Union naŋ e ka o yɛlɛ yi gbaŋgbale ka o e a Switzerland deme bondirii (Schweizerische Käseunion) a 1930s poɔ.<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-Janer2008_2-1</ref>
== A paaloŋ ==
A ama ba e bondirii ba naŋ de ka a e national bondirii, kyɛ a e la bondirii mine ba naŋ da teɛre ka a e national bondirii.<ref>https://doi.org/10.1007%2FBF00250241</ref>
'''A'''
* Afghanistan: kabuli palaw<ref>https://web.archive.org/web/20100903190418/http://www.tastedefined.com/2009/11/kabuli-pulao-with-raisins-and-carrots.html</ref>
* Albania: tavë kosi,<ref>https://www.bbc.co.uk/food/recipes/albanian_baked_lamb_with_92485</ref> flia
* Algeria: couscous,<ref name=":1">https://www.joe.co.uk/food/the-national-dish-of-every-country-at-the-world-cup-ranked-from-worst-to-best-183729</ref> rechta
* Andorra: escudella i carn d'olla<ref>https://web.archive.org/web/20201027125553/https://theculturetrip.com/europe/andorra/articles/the-10-most-traditional-dishes-from-andorra/</ref>
* Angola: moamba de galinha<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-8</ref>
* Antigua ane Barbuda: fungee ane pepperpot
* Argentina: asado,<ref>https://web.archive.org/web/20131203103920/http://viaresto.com/Notas/El-asado-660.aspx</ref><ref name=":1" /> empanada,<ref>https://www.lanacion.com.ar/lifestyle/el-mapa-definitivo-empanadas-argentinas-sus-14-nid2175466</ref> matambre, locro<ref>https://books.google.com/books?id=N78aCgAAQBAJ&q=national+dish</ref><ref>https://www.heraldtribune.com/story/news/2006/01/19/world-traveler-offers-tips-for-making-argentinian-specialty/28457449007/</ref><ref>https://web.archive.org/web/20210203082626/https://alanitrading.com/2020/04/21/how-different-countries-use-beef</ref><ref>https://web.archive.org/web/20080727003909/http://www.argentina.ar/_es/turismo/C791-gastronomia.php</ref>
* Armenia: khorovats, harisa (ta vɛŋ ka buriburi kpɛ neŋ a North African pepper paste harissa)
* Aruba: Keshi yena<ref name=":2">https://www.aljazeera.com/indepth/features/2013/05/201355102059629831.html</ref><ref>https://www.caribbeanemagazine.com/single-post/aruba-and-curacao-s-national-dish-keshi-yena-recipe</ref>
* Australia: roast lamb,<ref>https://web.archive.org/web/20131006180221/https://www.sunshinecoastdaily.com.au/news/roast-lamb-crowned-australias-national-dish/1781137/</ref> meat pie,<ref>https://www.theguardian.com/commentisfree/2015/jan/02/the-question-that-wont-die-is-the-meat-pie-australias-national-dish</ref><ref>https://web.archive.org/web/20100127182253/http://www.weightwatchers.com.au/util/art/index_art.aspx?tabnum=1&art_id=42481</ref><ref>https://www.sunstar.com.ph/article/13106/Local-News/Aussie-meat-pies</ref>Vegemite on toast<ref>https://www.independent.co.uk/news/world/australasia/cautious-change-to-australias-national-dish-1705216.html</ref>
* Austria: Wiener schnitzel<ref name=":3">https://web.archive.org/web/20161014060413/http://www.nationalgeographic.com/travel/top-10/national-food-dishes/</ref>
* Azerbaijan: dolma<ref name=":2" />
'''B'''
* Bahamas: crack conch ne peas ane mui<ref>https://web.archive.org/web/20100622063510/http://www.caribbeanamericanfoods.com/?page=island_dishes</ref>
* Bahrain: kabsa<ref>https://www.daringgourmet.com/chicken-machboos-bahraini-chicken-rice/</ref><ref>https://web.archive.org/web/20110610155501/http://www.worldcuisine.org.uk/tag/bahrain-national-dish</ref>
* Bangladesh: mui ne zombo (particularly ilish)<ref>https://web.archive.org/web/20101203204751/http://www.salon.com/life/food/eat_drink/2007/07/03/eating_india/</ref>
* Barbados: cou-cou ane zoŋ ɛgeraa<ref>https://ingmar.app/blog/national-dish-of-belarus-draniki/</ref>
* Belarus: draniki<ref name=":3" />
* Belgium: frites<ref>https://www.gulftoday.ae/lifestyle/2020/03/15/belgiums-national-dish-fried-potato-sticks-are-spared-from-the-national-coronavirus-lockdown</ref> (o maŋ de ne la mussels bee steak), <ref>https://archive.org/details/isbn_9781741048551</ref><ref name=":1" />carbonade flamande,waterzooi,<ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref> chocolate mousse, <ref name=":4">https://www.researchgate.net/publication/51094975</ref>Belgian waffle<ref name=":4" />
* Belize: mui ne bɛŋa<ref>[https://www.visitflanders.com/en/themes/flemish-food/flemish-dishes-and-specialities/flemish-dishes/belgian-chocolate-mousse/#:~:text=Chocolate%20mousse%20is%20one%20of,one%20and%20only%20national%20dessert. https://www.visitflanders.com/en/themes/flemish-food/flemish-dishes-and-specialities/flemish-dishes/belgian-chocolate-mousse/#:~:text=Chocolate%20mousse%20is%20one%20of,one%20and%20only%20national%20dessert.]</ref>
* Benin: kuli-kuli<ref>https://blog.remitly.com/lifestyle-culture/nationaldishes-belgian-waffles-belgium/</ref>
* Bhutan: ema datshi<ref>https://www.belizeadventure.ca/belizean-food-typical-and-traditional-things-to-try/</ref>
* Bolivia: salteñas<ref>https://web.archive.org/web/20181117233846/https://www.bhutan.travel/page/food</ref>
* Bosnia<ref>https://www.newcastleherald.com.au/story/2581479/the-worlds-12-best-national-dishes/</ref> and Herzegovina:<ref>https://web.archive.org/web/20101118053858/http://myhungrytum.com/2010/02/14/bosanksi-lonac-bosnia-herzegovina-national-dish-day-38dish-21/</ref> Bosnian pot,<ref>https://web.archive.org/web/20210119182350/https://theculturetrip.com/europe/bosnia-herzegovina/articles/the-21-best-dishes-in-bosnia-and-herzegovina/</ref><ref>https://www.croatiaweek.com/cevapi-the-dish-driving-people-crazy-for-decades/</ref> ćevapi, burek<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-1-74220-593-9</ref>
* Botswana: seswaa<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-1-74220-593-9</ref>
* Brazil: feijoada Picanha<ref>https://web.archive.org/web/20190705182246/https://sistemas.mre.gov.br/kitweb/datafiles/KualaLumpur/en-us/file/revistaing13-mat06.pdf</ref><ref name=":1" />
* Brunei: ambuyat<ref>https://web.archive.org/web/20140404180705/http://bt.com.bn/life/2009/02/21/fostering_family_ties_with_ambuyat_feasts</ref><ref>http://www.bt.com.bn/art-culture/2011/01/08/ambuyat-our-iconic-heritage</ref>
* Bulgaria: Shopska salad<ref>https://www.youngpioneertours.com/bulgarian-cuisine/</ref>, banitsa<ref>https://www.tasteatlas.com/banitsa</ref>
* Burkina Faso: riz gras
* Burundi: boko boko<ref>https://worldfood.guide/dish/boko_boko/</ref>
'''C'''
* Cambodia: amok zombo,<ref>http://www.canadianliving.com/blogs/food/2009/06/30/does-canada-have-a-national-dish/</ref><ref>https://grantourismotravels.com/cambodian-fish-amok-recipe/</ref> ''num banhchok'', <ref>https://grantourismotravels.com/nom-banh-chok-fermented-rice-noodles-cambodia/</ref>''samlar kako''<ref>http://www.tourismcambodia.com/tripplanner/food-and-drink/khmer-foods.htm</ref><ref>https://grantourismotravels.com/samlor-korko-recipe-cambodian-soup/</ref>
* Cameroon: ndolé<ref>https://www.nytimes.com/2008/12/07/nyregion/thecity/07asyl.html?pagewanted=1&ref=thecity</ref>
* Canada: poutine,<ref>https://web.archive.org/web/20110130122239/http://articles.cnn.com/2010-10-02/world/canada.poutine_1_dish-cheese-curds-foie?_s=PM%3AWORLD</ref><ref>https://web.archive.org/web/20110130122239/http://articles.cnn.com/2010-10-02/world/canada.poutine_1_dish-cheese-curds-foie?_s=PM%3AWORLD</ref><ref>https://web.archive.org/web/20110322002206/http://www.torontolife.com/daily/daily-dish/aprons-icons/2010/04/22/is-poutine-canadas-national-food-two-arguments-for-two-against/</ref> donair, butter tarts,<ref>https://alliedpassport.com/blog/national-dish-of-canada/</ref> Nanaimo bar, tourtière<ref>http://www.canadianliving.com/blogs/food/2009/06/30/does-canada-have-a-national-dish/</ref><ref>https://web.archive.org/web/20181226023544/https://torontosun.com/category/life</ref>
* Cape Verde: cachupa
* Central African Republic: baŋkye
* Chad: boule
* Chile: empanada,<ref>https://www.nytimes.com/2009/04/15/dining/15empa.html?_r=0</ref> pastel de choclo,<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-1-55832-249-3</ref><ref>https://www.npr.org/sections/thesalt/2016/07/07/484987260/in-chile-marraqueta-is-the-bread-of-life</ref> marraqueta<ref>https://www.nytimes.com/2009/04/15/dining/15empa.html?_r=0</ref>
* China: Peking duck,<ref>https://web.archive.org/web/20140312000414/http://www.cits.net/china-guide/china-traditions/peking-roast-duck.html</ref> crayfish,<ref>https://www.scmp.com/lifestyle/food-drink/article/2153030/how-american-crayfish-invaded-chinese-hearts-and-stomachs-and</ref><ref>https://www.goldthread2.com/food/how-louisiana-crayfish-became-china-national-dish/article/3023711</ref> dog-toloŋ, dumpling, malaxiangguo, dim sum,<ref>https://www.independent.co.uk/news/world/asia/hong-kong-warns-citizens-off-unhealthy-dim-sum-5346000.html</ref> kaolengmian, tanghulu
* Colombia: ajiaco,<ref>https://www.telegraph.co.uk/recipes/0/slow-cooker-colombian-potato-chicken-soup-recipe/</ref> bandeja paisa<ref>https://web.archive.org/web/20181226023541/http://www.saludcolombia.com/actual/salud60/colabora.htm</ref>
* Comoros: Langouste a la vanille (vanilla lobster)<ref>https://www.saveur.com/lobster-vanilla-sauce-recipe</ref>
* Democratic Republic a Congo poɔ: poulet à la moambé<ref name=":5">https://www.independent.co.uk/travel/africa/192part-guide-to-the-world-democratic-republic-of-congo-166497.html</ref>
* Republic of the Congo: poulet moambé<ref name=":5" />
* Costa Rica: casado, chifrijo (chicharrón bee di neŋ doba-nɛne naŋ kyēē be paa ane bɛŋɛ, gbɛɛyaga bɛnzeere bee bɛnsɔglɔ), mui peɛlaa ane pico de gallo (o na baŋ di ne la avocado ane/bee kamaana chips), gallo pinto,<ref name=":1" />olla de carne (naabo nɛne zeɛre ane zɛva-tɛɛtɛɛ).
* Croatia: zagorski štrukli, pašticada, sinjski arambaši, soparnik, rapska torta, imotska torta, rafioli,<ref>https://registar.kulturnadobra.hr/</ref> jota
* Cuba: ropa vieja<ref>https://www.salon.com/2018/05/30/a-recipe-for-cubas-national-dish-ropa-vieja-or-rags-from-the-new-book-cuban-flavor/</ref><ref>https://web.archive.org/web/20210415015906/https://wearemitu.com/culture/a-history-of-ropa-vieja-one-of-cubas-most-famous-and-forbidden-national-dishes/</ref>
* Cyprus: souvla,<ref>https://nt.gov.au/community/multicultural-communities/community-profiles/greek-cypriot</ref> kleftiko,<ref>https://apnews.com/832cf765ae944b988d7e2cdb9ca50931</ref><ref>https://web.archive.org/web/20210521211059/https://www.flyedelweiss.com/EN/destinations/paphos/Pages/paphos-culinary.aspx</ref> trachanás<ref>https://en.wikipedia.org/wiki/William_Woys_Weaver</ref>
* Czech Republic: vepřo knedlo zelo (doba-nɛnseɛraa ane roast dumplings ane sauerkraut), <ref>http://www.radio.cz/en/section/letter/czech-eating-habits-take-a-turn-for-the-better</ref>svíčková,<ref>https://web.archive.org/web/20200812130250/https://www.urbanadventures.com/blog/ultimate-czech-food-guide/</ref> paštika
'''D'''
* Denmark: stegt flæsk,<ref>https://web.archive.org/web/20141018161213/http://danskernesmad.dk/nationalret/</ref><ref name=":1" /><ref name=":6">https://www.thelocal.dk/20141120/denmark-declares-its-first-national-dish</ref> smørrebrød,<ref>https://www.npr.org/2011/01/04/132627711/the-art-of-the-danish-open-face-sandwich</ref><ref>https://www.npr.org/2011/01/04/132627711/the-art-of-the-danish-open-face-sandwich</ref><ref name=":6" /> flæskesteg
** Faroe Islands: Skerpikjøt
** Greenland: suaasat
* Djibouti: skoudehkaris
* Dominica: taŋazu noore (dakoroŋ), callaloo<ref>https://dominicanewsonline.com/news/homepage/news/general/breaking-news-callaloo-dominicas-new-national-dish/</ref>
* Dominican Republic: La bandera (mui, bɛŋa ane nɛne)<ref>https://www.nytimes.com/2020/01/02/travel/what-to-do-36-hours-in-santo-domingo-dominican-republic.html</ref>
E
* Ecuador: encebollado,<ref>https://web.archive.org/web/20160304051630/http://www.montanita.com/noticia-restaurantes/el-encebollado/10523</ref> guatitas,<ref>https://web.archive.org/web/20181226023555/http://ecuador.pordescubrir.com/la-guatita-ecuatoriana.html</ref> fanesca
* Egypt: ful medames,<ref name=":14">https://edition.cnn.com/travel/article/africa-food-dishes/index.html</ref> kushari, molokhiya,<ref>https://books.google.com/books?id=zzccAQAAMAAJ</ref> ''taʿamiya''<ref>https://en.wikipedia.org/wiki/Claudia_Roden</ref>
* El Salvador: pupusa<ref>https://web.archive.org/web/20210923085057/https://www.asamblea.gob.sv/decretos/details/1535</ref><ref>https://web.archive.org/web/20180623144409/http://www.cultura.gob.sv/secultura-invita-a-celebrar-el-dia-nacional-de-la-pupusa/</ref>
* Equatorial Guinea: Succotash
* Eritrea: zigini ne injera<ref>https://www.independent.co.uk/travel/africa/192part-guide-to-the-world-eritrea-633664.html</ref>
* Estonia: kama<ref>https://web.archive.org/web/20071217022649/http://www.eestitoit.ee/pages.php/010201%2C8</ref>
* Eswatini: Shisa Nyama
* Ethiopia: doro wat ane injera<ref>https://www.washingtonpost.com/archive/lifestyle/food/2005/05/18/ethiopias-national-dish/c199dd20-163d-4421-b54f-1602aa139132/</ref>
'''F'''
* Fiji: kokoda (Fijian ceviche)<ref>https://www.internationalcuisine.com/fiji-kokoda/</ref>
* Finland: rye boroboro,<ref>http://yle.fi/uutiset/osasto/news/the_people_have_spoken_-_rye_bread_is_the_national_food/9413195</ref> Karelian pie, karjalanpaisti, lohikeitto, joulutorttu
* France: escargot, pot-au-feu,<ref>https://www.nytimes.com/2004/02/18/dining/four-nations-where-forks-do-knives-work.html?pagewanted=2</ref><ref>http://away.com/feature/excerpt/national-geographic/top-ten-great-national-dishes-1.html?page=1</ref> beef bourguignon,<ref name=":7">https://www.lonelyplanet.com/articles/beef-bourguignon-france</ref><ref>https://www.nationalgeographic.co.uk/travel/2020/08/the-story-behind-the-classic-french-dish-boeuf-bourguignon</ref> blanquette de veau,<ref name=":7" /> steak frites,<ref name=":7" /> baguette,<ref>https://www.economist.com/1843/2019/01/22/its-crunch-time-for-the-baguette</ref> cassoulet,<ref>https://www.petitfute.com/p1-france/actualite/m17-top-10-insolites-voyage/a22083-les-10-plats-typiques-de-la-gastronomie-francaise.html</ref> cheese,<ref>https://www.parisinsidersguide.com/10-top-cheeses-of-france.html#:~:text=Camembert,the%20list%20at%20number%20one</ref> crêpe,<ref>https://www.thesouthend.wayne.edu/article_6d0bd2f5-d2ce-5291-8a7b-980b948dc12e.html</ref> crème caramel,<ref>https://books.google.com/books?id=_4J6DwAAQBAJ&q=france+%22national+dessert%22&pg=PT91</ref> croissant, poule au pot (dakoroŋ),<ref>https://www.nouvelle-aquitaine-tourisme.com/en/news/traditional-recipe-authentic-poule-au-pot</ref> chou à la crème
*
=== G ===
* Gabon: poulet nyembwe<ref>https://web.archive.org/web/20111006195823/http://www.gabonmagazine.com/images/G10-ENGLISH/G10.palmoil.p18-23.pdf</ref>
* The Gambia: domoda<ref>https://en.wikipedia.org/wiki/Special:BookSources/978-0-313-35911-8</ref>
* Georgia: khachapuri,<ref>https://web.archive.org/web/20210121215413/http://georgiatoday.ge/news/14205/Khachapuri-Granted-Cultural-Heritage-Status</ref><ref>https://web.archive.org/web/20111007010149/http://www.investor.ge/issues/2010_2/02.htm</ref><ref>http://www.iset-pi.ge/index.php?article_id=715</ref> khinkali<ref>https://www.georgianwine.uk/georgian-food-tastes-of-the-silk-road/</ref>
* Germany: schweinshaxe, bratwurst, sauerbraten,<ref>https://web.archive.org/web/20100707024527/http://www.germanfoods.org/schools/delicious/traditionaldishes.cfm</ref> döner kebab,<ref>https://www.nytimes.com/1996/06/26/garden/for-germans-a-kebab-filled-with-social-significance.html</ref> currywurst,<ref>https://www.nytimes.com/2011/01/27/world/europe/27berlin.html</ref> eisbein with sauerkraut<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-118</ref><ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-119</ref><ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-120</ref>
* Ghana: fufu, jollof rice
* Greece: horiatiki,moussaka, <ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-Michelin_121-0</ref>fasolada<ref name=":8">[https://greece.greekreporter.com/2018/06/29/what-is-the-national-dish-of-greece/#:~:text=In%20Greece%2C%20the%20national%20dishes,region%20or%20island%20in%20Greece. https://greece.greekreporter.com/2018/06/29/what-is-the-national-dish-of-greece/#:~:text=In%20Greece%2C%20the%20national%20dishes,region%20or%20island%20in%20Greece.]</ref> souvlaki, <ref name=":8" />gyros, <ref name=":8" />magiritsa, <ref name=":8" />kokoretsi<ref name=":8" />
* Grenada: oil down
* Guatemala: pepián<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-123</ref>
* Guinea: poulet yassa
* Guinea-Bissau: caldo de mancarra
* Guyana: pepperpot and chicken curry<ref>http://www.gov.gd/articles/grenada_oil_down.html</ref>
=== H ===
[[https://en.wikipedia.org/wiki/File:Goulash_in_Prague.jpg|right|thumb|Hungarian goulash]]
* Haiti: griot, soup joumou
* Honduras: baleada
* Hong Kong: pineapple bun, dim sum
* Hungary: goulash<ref>https://web.archive.org/web/20251005093903/https://theculturetrip.com/central-america/guatemala/articles/the-10-most-traditional-dishes-from-guatemala</ref><ref name=":9">https://web.archive.org/web/20131004213347/http://www.caribbeanamericanfoods.com/?page=island_dishes</ref>
=== I ===
[[https://en.wikipedia.org/wiki/File:Sate-2.JPG|thumb|Satay, one of the national dishes of Indonesia]]
[[https://en.wikipedia.org/wiki/File:Espaguetis_carbonara.jpg|thumb|A dish of pasta ({{lang|it|[[carbonara]]}}). Pasta is considered one of the national dishes of Italy]]
* Iceland: lamb, <ref>https://icelandicfood.is/the-national-dish-of-iceland/</ref><ref>https://icelandmonitor.mbl.is/news/news/2015/04/01/what_is_iceland_s_national_dish/</ref><ref>https://www.vogue.com/article/what-to-eat-in-iceland-local-food</ref>hákarl<ref>https://web.archive.org/web/20200918082328/https://theculturetrip.com/europe/iceland/articles/how-fermented-shark-became-the-national-dish-of-iceland/</ref><ref name=":9" /><ref name=":1" />
* India: Khichdi, Chaat, butter chicken, biryani, Dal, dosa, idli<ref>https://www.outlookindia.com/traveller/cuisine/biryani-indias-national-dish</ref><ref>https://www.ndtv.com/food/fictitious-says-union-minister-harsimrat-kaur-badal-khichdi-wont-be-the-national-dish-1769941</ref><ref>https://www.clubmahindra.com/blog/food/7-dishes-that-can-be-the-national-food-of-india</ref><ref>https://www.scmp.com/magazines/post-magazine/travel/article/2128642/how-khichdi-mix-lentils-and-rice-became-indias</ref>
* Indonesia: nasi goreng,<ref name=":10">https://travel.kompas.com/read/2018/04/10/171000627/kemenpar-tetapkan-5-makanan-nasional-indonesia-ini-daftarnya</ref><ref name=":11">https://web.archive.org/web/20181226023403/http://travel.cnn.com/explorations/eat/40-foods-indonesians-cant-live-without-327106</ref> mie goreng<ref>https://keasberry.com/recipes/mie-goreng-indonesian-fried-noodles/</ref>, tumpeng, <ref>https://www.thejakartapost.com/news/2014/02/10/celebratory-rice-cone-dish-represent-archipelago.html</ref>satay,<ref name=":10" /><ref name=":11" />soto,<ref name=":10" /><ref>http://eatingasia.typepad.com/eatingasia/2009/03/soto-crawl.html</ref> rendang,<ref name=":10" /> gado gado<ref name=":10" />
* Iran: abgoosht,<ref name=":1" />chelo kabab,<ref>https://web.archive.org/web/20181226023540/https://www.thespruceeats.com/chelo-kebab-recipe-2355640</ref> ghormeh sabzi <ref>https://web.archive.org/web/20210904093513/https://iranian.com/2020/03/20/delicious-najmieh-batmanglij-transforms-irans-national-dish-into-a-pizza/</ref>Fesenjan
* Iraq: masgouf,<ref>https://www.thetimes.com/travel/destinations/uk-travel/england/london-travel/imams-put-fatwa-on-carp-caught-in-tigris-bbs2qxdcrgf</ref> dolma, Iraqi kebab, quzi
* Ireland: soda bread,<ref>https://www.independent.ie/irish-news/top-breakfast-baguette-rolls-into-irish-history-26445568.html</ref> butter,<ref>https://web.archive.org/web/20160131081749/http://britishfood.about.com/od/introtobritishfood/f/questions.htm</ref><ref>https://www.scmp.com/news/world/europe/article/3064848/coronavirus-french-corona-pizza-video-outrages-italians-prompting</ref> Irish stew
* Israel: falafel (served in pita),<ref>https://web.archive.org/web/20180307151129/https://www.haaretz.com/israel-s-national-food-no-matter-where-it-started-1.5216693</ref><ref>https://web.archive.org/web/20081024212900/http://www.myjewishlearning.com/culture/food/IsraeliFood/FalafelRecipe.htm</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref> Israeli salad,<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-151</ref> <ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-152</ref>meorav Yerushalmi,<ref>https://nationalpost.com/life/food/cook-this-green-shakshuka-with-chard-kale-spinach-and-feta-from-shuk</ref> sabich, Ptitim
* Italy: pasta,<ref>https://news.bbc.co.uk/2/hi/europe/6992444.stm</ref> <ref>https://www.scmp.com/news/world/europe/article/3064848/coronavirus-french-corona-pizza-video-outrages-italians-prompting</ref>pizza,<ref>https://books.google.com/books?id=xeN5DwAAQBAJ&q=pizza+national+dish&pg=PA34</ref><ref>https://www.cedigros.com/rubriche/italia-in-tavola/7459/risotto.html</ref> risotto, mozzarella,<ref>https://www.lapecorella.it/2023/10/24/formaggi-nella-cucina-italiana/</ref> Parmigiano Reggiano,<ref>https://www.parmigianoreggiano.com/it/news/parmigiano-reggiano-italiano</ref> Italian wine
* Ivory Coast: atcheke<ref>https://books.google.com/books?id=iE6DAwAAQBAJ&q=%22national+dish%22+zimbabwe&pg=PA177</ref>
=== J ===
[[https://en.wikipedia.org/wiki/File:Sushi_(1441234074).jpg|right|thumb|Sushi, Japan]]
* Jamaica: Ackee and saltfish<ref name=":13">https://web.archive.org/web/20110121124324/http://away.com/feature/excerpt/national-geographic/top-ten-great-national-dishes-1.html?page=2</ref>
* Japan: sushi,<ref>[https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known. https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known.]</ref> Japanese curry,<ref>[https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known. https://my.asiatatler.com/dining/10-things-you-need-to-know-about-sushi#:~:text=Whether%20you're%20a%20sushi,you%20might%20not%20have%20known.]</ref>ramen,<ref>https://www.theguardian.com/world/2010/jun/18/ramen-japan-national-dish</ref> tempura,<ref>https://web.archive.org/web/20210521211058/https://www.nhk.or.jp/dwc/food/articles/42.html</ref> wagashi,<ref>https://www.bangkokpost.com/life/social-and-lifestyle/279145/sweet-treats-from-japan</ref> sashimi, miso soup
* Jordan: mansaf<ref>https://web.archive.org/web/20170726011901/http://waleg.com/kitchen/archives/000912.html</ref><ref>http://www.kinghussein.gov.jo/facts3.html</ref>
=== K ===
[[https://en.wikipedia.org/wiki/File:Korean.cuisine-Kimchi-Jeotgal-01.jpg|right|thumb|Korean kimchi]]
* Kazakhstan: beshbarmak<ref>https://weproject.media/en/articles/detail/how-beshbarmak-is-served-in-different-regions-of-kazakhstan/</ref>
* Kenya: ugali with sukuma wiki,<ref name=":12">https://en.wikipedia.org/wiki/Kivutha_Kibwana</ref>githeri,<ref name=":12" /> chapati,<ref name=":12" /><ref>https://www.standardmedia.co.ke/evewoman/food/article/2001231754/chapati-edges-ugali-out-of-table-in-kenya-as-the-rich-salivate-over-poor-mans-diet</ref>nyama choma<ref>https://books.google.com/books?id=TTf0Aki6AUQC&q=national+dish+&pg=PA90</ref>
* Kiribati: Palusami
* Korea, North: raengmyŏn, <ref>https://www.eater.com/2018/9/25/17855140/pyongyang-naengmyeon-jungsik-yim-north-korea-cold-noodles</ref>kimchi<ref>https://edition.cnn.com/travel/article/north-korea-kimchi-festival/index.html</ref>
* Korea, South: kimchi,<ref>https://www.bbc.com/news/world-asia-25840493</ref> bulgogi, <ref>https://www.thedailymeal.com/10-national-dishes-around-world/6514</ref>bibimbap, <ref>http://www.theaustralian.com.au/life/travel/pyeongchang-winter-olympics-the-next-cool-spot/news-story/4f5f9f25423111d937a01069722c0a37</ref>jajangmyeon, <ref>https://www.jamesbeard.org/recipes/jajangmyun-noodles-with-black-bean-sauce</ref><ref>https://www.smithsonianmag.com/arts-culture/koreas-black-day-when-sad-single-people-get-together-and-eat-black-food-16537918/?no-ist</ref>bingsu,<ref>https://www.straitstimes.com/lifestyle/food/beat-the-heat-with-bingsu-south-koreas-national-dessert-of-shaved-ice-milk-condensed</ref> tteokbokki
* Kosovo: flia<ref>https://anoregoncottage.com/making-flia-a-national-dish-of-kosovo/</ref>
* Kuwait: Machboos Laham
* Kyrgyzstan: beshbarmak<ref>https://www.baibol.kg/tourism-in-kyrgyzstan/traditions/national-meal-beshbarmak/</ref>
=== L ===
[[https://en.wikipedia.org/wiki/File:Flickr_-_cyclonebill_-_Tabbouleh.jpg|right|thumb|Tabbouleh, Lebanon]]
* Laos: larb/laap,<ref>https://www.scmp.com/magazines/style/leisure/article/3046167/thai-food-or-lao-5-typical-dishes-laos-will-help-you-see</ref> sticky rice,<ref>https://www.smithsonianmag.com/travel/a-taste-of-sticky-rice-laos-national-dish-136291/</ref> tam mak hoong<ref>https://www.dw.com/en/papaya-salad-with-shrimp-laos/a-37837972</ref>
* Latvia: layered rye bread, <ref>https://eatingtheworld.net/2017/11/17/latvias-national-dessert/</ref>sklandrausis, <ref>https://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:C:2012:349:0023:0027:EN:PDF#page=3</ref>Jāņi cheese,<ref>https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:52015XC0620(01)&from=EN</ref> Grey peas
* Lebanon: kibbeh,<ref name=":13" /> tabbouleh<ref>http://www.sourat.com/lebanese_recipes.htm</ref>
* Lesotho: Pap-pap
* Liberia: dumboy
* Libya: Couscous
* Liechtenstein: käsknöpfle
* Lithuania: bigos, cepelinai,<ref>https://books.google.com/books?id=NTo6c_PJWRgC&pg=RA3-PA226</ref> <ref>https://books.google.com/books?id=pDdqGoXvSvYC&pg=PA61</ref>šaltibarščiai<ref>https://www.themayor.eu/en/lithuania-welcomes-tourists-with-pink-soup-carpet</ref>
* Luxembourg: Judd mat Gaardebounen<ref>http://www.mycitycuisine.org/wiki/Judd_mat_Gaardebounen</ref>
=== M ===
[[https://en.wikipedia.org/wiki/File:Nasi_Lemak,_Mamak,_Sydney.jpg|thumb|Nasi lemak, a national dish of Malaysia.]]
* Madagascar: romazava<ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-194</ref>
* Malaysia: nasi lemak,<ref>https://web.archive.org/web/20140702211527/http://www.thestar.com.my/Travel/Malaysia/2011/04/07/Nasi-lemak-our-national-dish.aspx/</ref> satay<ref>https://www.nytimes.com/1984/12/02/travel/in-malaysia-spicy-satay.html</ref><ref>https://en.wikipedia.org/wiki/National_dish#cite_ref-197</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref>
* Maldives: mas huni
* Mali: tiguadege na
* Malta: stuffat tal-fenek<ref>https://roadsandkingdoms.com/2018/history-malta-7-dishes/</ref>
* Marshall Islands: Barramundi cod, macadamia nut pie
* Mauritius: dholl puri (flatbread stuffed with lentils)<ref>https://www.getaway.co.za/food/25-eat-drink-mauritius/</ref><ref>https://books.google.com/books?id=4gbBDwAAQBAJ&q=mauritius+national+dish&pg=PT231</ref>
* Mexico: taco,<ref name=":1" />mole poblano,<ref>https://web.archive.org/web/20181226023302/http://www.mexonline.com/molepoblano.htm%20</ref> chiles en nogada<ref>https://web.archive.org/web/20181226023419/http://nbclatino.com/2012/09/11/how-to-make-traditional-mexican-favorites/</ref>
* Moldova: mămăligă,<ref>https://www.livetheworld.com//post/mamaliga-the-real-national-dish-of-moldova-xhd9</ref> ghivetch
* Monaco: barbagiuan<ref>https://web.archive.org/web/20201024205222/https://theculturetrip.com/europe/monaco/articles/a-brief-history-of-barbagiuan-monacos-national-dish/</ref>
* Mongolia: buuz
* Montenegro: njeguški pršut
* Morocco: couscous,<ref name=":1" /> tagine
* Myanmar: mohinga,<ref>https://web.archive.org/web/20190525121056/https://www.thailandtatler.com/dining/5-must-eat-foods-in-myanmar</ref> lahpet thoke<ref>https://web.archive.org/web/20070708232214/http://www.innwa.com/dev/kitchen/news/get-news.asp?id=142</ref><ref>https://en.wikipedia.org/wiki/ISBN_(identifier)</ref><ref>https://www.vice.com/en/article/tea-leaf-salad-is-a-greasy-equalizer-in-myanmar/</ref>
=== N ===
[[https://en.wikipedia.org/wiki/File:Dhido.jpg|thumb|Dhido, Nepal]]
* Nauru: coconut fish
* Nepal: Gundruk and Dhido<ref>https://steemit.com/kntpr/@kushanpoudel/national-food-of-nepal-gundruk-and-dhido</ref>
* Netherlands: stamppot, <ref>https://web.archive.org/web/20190211231811/https://www.goodfoodrevolution.com/emily-wight-dutch-feast/</ref>soused herring with onion and pickles<ref>https://www.esn-groningen.nl/the-5-most-typical-dutch-foods/</ref>
* New Zealand: <ref>https://web.archive.org/web/20160323095648/http://www.aatravel.co.nz/101/info/Bacon-n-Egg-Pie_687.htm</ref>meat pie, <ref>https://web.archive.org/web/20160323095648/http://www.aatravel.co.nz/101/info/Bacon-n-Egg-Pie_687.htm</ref>bacon and egg pie,<ref>http://www.stuff.co.nz/life-style/food-wine/recipes/3265165/Tender-loving-care-for-lamb</ref> lamb, pavlova<ref>https://www.academia.edu/11401553</ref>
* Nicaragua: gallo pinto, nacatamal,<ref>https://web.archive.org/web/20201031122727/https://theculturetrip.com/central-america/nicaragua/articles/how-the-nacatamal-became-nicaraguas-national-dish/</ref> vigorón
* Niger: dambou
* Nigeria: tuwon shinkafa,<ref name=":1" />Jollof rice<ref name=":14" />,<ref>https://www.bbc.com/news/av/business-38690500</ref> pounded yam and egusi soup<ref>https://web.archive.org/web/20151120061432/http://pulse.ng/food/diy-recipes-how-to-make-egusi-soup-id4198969.html</ref>,<ref name=":14" /><ref>https://edition.cnn.com/travel/article/my-national-dish-cnnfood</ref> Indomie instant noodles<ref>https://www.youtube.com/watch?v=LYs_nTnjp-k</ref>
* North Macedonia: tavče gravče<ref>https://www.intrepidtravel.com/adventures/macedonia-food/</ref><ref>http://www.newsinenglish.no/2014/06/16/farikal-wins-again-as-norways-national-dish/</ref>
* Norway: fårikål<ref>http://www.thelocal.no/20140617/norway-replaces-frikl-as-national-dishwith-frikl</ref>
=== O ===
* Oman: shuwa<ref>https://hk.asiatatler.com/dining/7-must-try-omani-foods-and-where-to-find-them</ref>
*
=== P ===
[[https://en.wikipedia.org/wiki/File:Pork_adobo_with_shallots.jpg|thumb|Philippine adobo, a national dish of the Philippines]]
* Pakistan: biryani, nihari, chicken karahi, gulab jamun<ref>https://dailytimes.com.pk/341045/gulab-jamun-is-now-officially-the-national-dessert-of-pakistan/</ref>
* Palestine: maqluba,<ref>https://books.google.com/books?id=HTWNDAAAQBAJ&q=papua+new+guinea+%22national+dish%22&pg=PA226</ref> musakhan,<ref>https://www.middleeastmonitor.com/20180304-musakhan/</ref> <ref>https://books.google.com/books?id=yve-_E5VwGAC&q=falafel+national+dish+palestine&pg=PA378</ref>falafel
* Panama: sancocho<ref>https://books.google.com/books?id=DuiB5iJ26KcC&q=falafel+national+dish</ref>
* Paraguay: Sopa paraguaya
* Peru: ceviche,<ref>https://web.archive.org/web/20080607073905/http://www.perutravelguide.org/ceviche-the-peruvian-national-dish.html</ref> pollo a la brasa<ref>https://machutravelperu.com/blog/peru-national-dish</ref>
* Philippines: adobo,<ref name="CNNP2017" /><ref name="PhilStar2018" /><ref name="Gapultos2013" /> sinigang,<ref name="CNNP2017" /><ref name="Gapultos2013" /> sisig,<ref name="CNNP2017" /> pancit,<ref name="CNNP2017" /> halo-halo,<ref name="PhilStar2018" /> lechon
* Poland: bigos,<ref name="Joe2" /> pierogi, kotlet schabowy,
* Portugal: bacalhau, caldo verde, cozido à portuguesa,<ref name="Joe2" /><ref name="Holland" /><ref name="Poelzl" /> Pastel de Belem, Sardinha Assada (Grilled Sardines)
=== Q ===
* Qatar: machboos
=== R ===
* Romania: mămăligă, sarmale, mici
* Russia: beef stroganoff, chicken Kiev, pierogi, borscht, shchi,<ref name="Motion" /> Kasha,<ref name="Motion" /> pelmeni,<ref name="Joe2" /> pirozhki,<ref name="Pokhlyobkin_Pirogi" /> Olivier salad, blini
* Rwanda: ibihaza
=== S ===
[[https://en.wikipedia.org/wiki/File:Kräftskiva-2.jpg|thumb|Swedish crayfish called Kräftskiva]]
* San Marino: torta tre monti
* Saudi Arabia: saleeg, kabsa, jareesh, maqshus
* Senegal: thieboudienne<ref name="Joe2" />
* Serbia: ćevapčići, pljeskavica, gibanica (pastry), Karađorđeva steak, sarma, pasulj
* Singapore: chilli crab, Hainanese chicken rice, Hokkien mee
* Slovakia: pirohy, bryndzové halušky
* Slovenia: cremeschnitte, buckwheat dumplings (particularly štruklji), Idrijski žlikrofi, Carniolan sausage
* Somalia: bariis Iskukaris
* South Africa: bobotie<ref name="Crais McClendon 2013 p. 64" />
* Spain: tortilla de patatas
** Asturias: cachopo
** Catalonia: pa amb tomaquet
** Galicia: polbo á feira
** Madrid: churro
** Valencia: paella
* Sri Lanka: rice and curry, kottu<ref name="Herald2" />
* Suriname: pom
* Sweden: köttbullar,<ref name="swedentravelnet.com" /><ref name="Joe2" /> kräftskiva,<ref name="swedentravelnet.com" /> surströmming (fermented Baltic herring), pickled herring with potatoes, ostkaka, smörgåstårta (savory sandwich cake) and kebab pizza.
* Switzerland: fondue, muesli, raclette, rösti (core national dishes). Other dishes: cervelat (national sausage),<ref name="NYT2008" /><ref name="Joe2" /> Zürcher geschnetzeltes,<ref name="BBCGood" /> cordon bleu
* Syria: kibbeh<ref name="Geographic2" />
=== T ===
[[https://en.wikipedia.org/wiki/File:Tom_yam_kung_maenam.jpg|thumb|Tom yum kung, national dish of Thailand]]
* Tajikistan: osh palov,<ref name="Tajik" /> qurutob<ref name="Tajik" />
* Taiwan: beef noodle soup, minced pork rice
* Tanzania: chipsi mayai
* Thailand: pad thai, pad gaprao, tom yum kung, som tam
* Togo: fufu
* Tonga: 'ota 'ika
* Trinidad and Tobago: doubles, pelau, bake and shark, Roti
** Tobago: curry crab and dumplings
* Tunisia: couscous,<ref name="Joe2" /> brik/bric
* Turkey: doner kebab, dürüm, kuru fasulye with pilaf, kebap, baklava, simit, kapuska
* Tuvalu: pulaka
=== U ===
[[https://en.wikipedia.org/wiki/File:Traditional.Sunday.Roast-01.jpg|thumb|A Sunday roast – in this example, roast beef with mashed potatoes, vegetables is a national dish of the United Kingdom – here with Yorkshire pudding marking this variation as English.]]
* Uganda: matooke<ref name="National2" />
* Ukraine: borscht,<ref name="Besussenko_Borscht" /><ref name="Pokhlyobkin_Dict_Borscht" /> varenyky<ref name="Besussenko_Varenyky" /><ref name="Pokhlyobkin_Dict_Varenyky" />
* United Arab Emirates: harees, shuwa<ref name="AE" />
* United Kingdom: a "full" fry-up breakfast, Fried chicken, fish and chips Sunday roast (especially roast beef), chicken tikka masala,, potato crisps
** England: Melton Mowbray pork pies, crumpets, custard, apple pie, rhubarb crumble, pudding: (black pudding, steak and kidney pudding, Yorkshire pudding, plum pudding, spotted dick), trifle
*** Cornwall: Cornish pasties
*** Devon: Devonshire cream tea, pasty
** Northern Ireland: Barmbrack, boxty, champ, Ulster fry
** Scotland: Burns supper of haggis with neeps and tatties, and scotch whisky, Arbroath smokies, kippers, kedgeree, Cullen skink, cock-a-leekie soup, porridge, rumbledethumps, Clootie dumpling, Cranachan, Dundee cake
*** Shetland Isles: Reestit mutton
** Wales: bara brith, cawl, Glamorgan sausages, laverbread, Tatws Pum Munud, Welsh rarebit, Welsh cakes
* United States: apple pie,<ref name="Walsh2017" /> cheeseburger, hamburger,<ref name="Stewart2016" /> hot dog,<ref name="Walsh2017" /><ref name="Stewart2016" /> fried chicken, Salisbury steak, turkey,<ref name="Stewart2016" /> mashed potatoes and gravy (historical)
** American Samoa: palusami
** Guam: Kelaguen, Spam
** Hawaii: Saimin
** Northern Mariana Islands: Kelaguen
** Puerto Rico: lechon, mofongo, arroz con gandules
** United States Virgin Islands: funji
* Uruguay: chivito<ref name="Joe2" />
* Uzbekistan: Uzbek Plov (also spelled palov and sometimes called osh)
=== V ===
* Vanuatu: laplap
* Vatican City: Fettuccine alla Papalina (unofficial)
* Venezuela: pabellón criollo, arepa
* Vietnam: Pho, Bun cha, Bún bò Huế,
=== Y ===
* Yemen: saltah
=== Z ===
* Zambia: nshima
* Zimbabwe: sadza
== Sommo yizie ==
mpefsdkfksly65ozr3sj5co610lapk1
Central University (Ghana)
0
7330
62875
62872
2026-07-23T12:42:12Z
Mary Loor
55
62875
wikitext
text/x-wiki
A '''Central University''' e la sommeŋɛ Univɛniti naŋ be a Ghana poɔ, a piili neŋ a International Central Gospel Church (ICGC). O naŋ wa piili o e la pastoral training institute ane Mensah Otabil a 1988 poɔ. June 1991 poɔ, ba wa baŋ o la ka o e a Central Bible College. Puoriŋ la ka o la leɛ a Central Christian College a 1993 poɔ kyɛ pãã wa leɛ a Central University College 1998 poɔ. A 2016 poɔ, Central University College wa arɛɛ o gbɛɛ zuŋ a e a University ona la pampana a Central University. A university ŋa yelnyɔraa la ka o wuli a African noba lesiri ane seeloŋ poɔ meŋɛ nyooroo ne sagediibu. Pampana o e a sommeŋɛ Univɛniti kpoŋ a Ghana poɔ.
== Dakoroŋ ==
1988 poɔ, a ''Central Bible College'' wa piili la.1993 poɔ, o leɛ la a ''Christian University College'' kyɛ la wa leɛ a Central University College (CUC) a 1998 yuoni poɔ
26tsb4mh757duf4zspsanqpn6r8pd6d
62876
62875
2026-07-23T12:48:14Z
Mary Loor
55
62876
wikitext
text/x-wiki
A '''Central University''' e la sommeŋɛ Univɛniti naŋ be a Ghana poɔ, a piili neŋ a International Central Gospel Church (ICGC). O naŋ wa piili o e la pastoral training institute ane Mensah Otabil a 1988 poɔ. June 1991 poɔ, ba wa baŋ o la ka o e a Central Bible College. Puoriŋ la ka o la leɛ a Central Christian College a 1993 poɔ kyɛ pãã wa leɛ a Central University College 1998 poɔ. A 2016 poɔ, Central University College wa arɛɛ o gbɛɛ zuŋ a e a University ona la pampana a Central University. A university ŋa yelnyɔraa la ka o wuli a African noba lesiri ane seeloŋ poɔ meŋɛ nyooroo ne sagediibu. Pampana o e a sommeŋɛ Univɛniti kpoŋ a Ghana poɔ.
== Dakoroŋ ==
1988 poɔ, a ''Central Bible College'' wa piili la.1993 poɔ, o leɛ la a ''Christian University College'' kyɛ la wa leɛ a Central University College (CUC) a 1998 yuoni poɔ, sɛre la ka a yuori pãã leɛ.
twhyp01tdpu2dcxo0k0c0uh3y3nf8kd
62877
62876
2026-07-23T13:03:16Z
Mary Loor
55
62877
wikitext
text/x-wiki
A '''Central University''' e la sommeŋɛ Univɛniti naŋ be a Ghana poɔ, a piili neŋ a International Central Gospel Church (ICGC). O naŋ wa piili o e la pastoral training institute ane Mensah Otabil a 1988 poɔ. June 1991 poɔ, ba wa baŋ o la ka o e a Central Bible College. Puoriŋ la ka o la leɛ a Central Christian College a 1993 poɔ kyɛ pãã wa leɛ a Central University College 1998 poɔ. A 2016 poɔ, Central University College wa arɛɛ o gbɛɛ zuŋ a e a University ona la pampana a Central University. A university ŋa yelnyɔraa la ka o wuli a African noba lesiri ane seeloŋ poɔ meŋɛ nyooroo ne sagediibu. Pampana o e a sommeŋɛ Univɛniti kpoŋ a Ghana poɔ.
== Dakoroŋ ==
1988 poɔ, a ''Central Bible College'' wa piili la.1993 poɔ, o leɛ la a ''Christian University College'' kyɛ la wa leɛ a Central University College (CUC) a 1998 yuoni poɔ, sɛre la ka a yuori pãã leɛ.
Central University College (CUC) e la meŋɛ suobu university college a Ghana poɔ. Owned by the International Central Gospel Church la so o, neɛ naŋ waneŋ o kyɛ la e a chancellor la, Rev. Dr. Mensa Otabil o na la taa o yuomo pie naŋ pare, a kyɛ e neɛ naŋ maŋ are African Christianity gbɛbogiriŋ ama maŋ ŋmeɛrɛ kpɛle a boɔrɔ yelsonne a kyaare a kirista biiri yelwonni a kyɛ leɛrɛ seeloŋ poɔ yɛlɛ a ennɛ bieou zaa yelserre poɔ. A CUC teɛroŋ wa nyɛ la eebo a1988 poɔ.
aasfqnw1hcnvbkok7h0sj0bh2ljd9cy
62878
62877
2026-07-23T13:19:16Z
Mary Loor
55
62878
wikitext
text/x-wiki
A '''Central University''' e la sommeŋɛ Univɛniti naŋ be a Ghana poɔ, a piili neŋ a International Central Gospel Church (ICGC). O naŋ wa piili o e la pastoral training institute ane Mensah Otabil a 1988 poɔ. June 1991 poɔ, ba wa baŋ o la ka o e a Central Bible College. Puoriŋ la ka o la leɛ a Central Christian College a 1993 poɔ kyɛ pãã wa leɛ a Central University College 1998 poɔ. A 2016 poɔ, Central University College wa arɛɛ o gbɛɛ zuŋ a e a University ona la pampana a Central University. A university ŋa yelnyɔraa la ka o wuli a African noba lesiri ane seeloŋ poɔ meŋɛ nyooroo ne sagediibu. Pampana o e a sommeŋɛ Univɛniti kpoŋ a Ghana poɔ.
== Dakoroŋ ==
1988 poɔ, a ''Central Bible College'' wa piili la.1993 poɔ, o leɛ la a ''Christian University College'' kyɛ la wa leɛ a Central University College (CUC) a 1998 yuoni poɔ, sɛre la ka a yuori pãã leɛ.
Central University College (CUC) e la meŋɛ suobu university college a Ghana poɔ. Owned by the International Central Gospel Church la so o, neɛ naŋ waneŋ o kyɛ la e a chancellor la, Rev. Dr. Mensa Otabil o na la taa o yuomo pie naŋ pare, a kyɛ e neɛ naŋ maŋ are African Christianity gbɛbogiriŋ ama maŋ ŋmeɛrɛ kpɛle a boɔrɔ yelsonne a kyaare a kirista biiri yelwonni a kyɛ leɛrɛ seeloŋ poɔ yɛlɛ a ennɛ bieou zaa yelserre poɔ. A CUC teɛroŋ wa nyɛ la eebo a1988 poɔ.
CUC's naŋ kyɛre baara la kyɛ naŋ meɛrɛ sakue daadaa a Miotso poɔ, a peɛle Dawhenya. A 26 October 2007 poɔ, CUC leɛ taa la a sakuuri kpoŋ zie zaa a Accra poɔ, a capital ko Miotso a.teŋɛ naŋ peɛle Dawhenya a Greater Accra Region poɔ.
A university's registrar dɛndɛŋ, Johnson Kanda, wa la neɛ ba naŋ daŋ de toma a Univɛniti poɔ, ka o maale kyɛ laŋ a yelsɛgebinii kpoŋ zie zaa taa naŋ seŋ ka a Univɛniti boɔrɔ; o toŋ la a ta yuomo pie wagere 1998 ane 2008 kpakyagaŋ.
q63zzdxjjg452b0vxbxfcbs4hxskuwe
62879
62878
2026-07-23T13:26:33Z
Mary Loor
55
62879
wikitext
text/x-wiki
A '''Central University''' e la sommeŋɛ Univɛniti naŋ be a Ghana poɔ, a piili neŋ a International Central Gospel Church (ICGC). O naŋ wa piili o e la pastoral training institute ane Mensah Otabil a 1988 poɔ. June 1991 poɔ, ba wa baŋ o la ka o e a Central Bible College. Puoriŋ la ka o la leɛ a Central Christian College a 1993 poɔ kyɛ pãã wa leɛ a Central University College 1998 poɔ. A 2016 poɔ, Central University College wa arɛɛ o gbɛɛ zuŋ a e a University ona la pampana a Central University. A university ŋa yelnyɔraa la ka o wuli a African noba lesiri ane seeloŋ poɔ meŋɛ nyooroo ne sagediibu. Pampana o e a sommeŋɛ Univɛniti kpoŋ a Ghana poɔ.
== Dakoroŋ ==
1988 poɔ, a ''Central Bible College'' wa piili la.1993 poɔ, o leɛ la a ''Christian University College'' kyɛ la wa leɛ a Central University College (CUC) a 1998 yuoni poɔ, sɛre la ka a yuori pãã leɛ.
Central University College (CUC) e la meŋɛ suobu university college a Ghana poɔ. International Central Gospel Church la so o, neɛ naŋ waneŋ o kyɛ la e a chancellor la, Rev. Dr. Mensa Otabil o na la taa o yuomo pie naŋ pare, a kyɛ e neɛ naŋ maŋ are African Christianity gbɛbogiriŋ ama maŋ ŋmeɛrɛ kpɛle a boɔrɔ yelsonne a kyaare a kirista biiri yelwonni a kyɛ leɛrɛ seeloŋ poɔ yɛlɛ a ennɛ bieou zaa yelserre poɔ. A CUC teɛroŋ wa nyɛ la eebo a1988 poɔ.
CUC's naŋ kyɛre baara la kyɛ naŋ meɛrɛ sakue daadaa a Miotso poɔ, a peɛle Dawhenya. A 26 October 2007 poɔ, CUC leɛ taa la a sakuuri kpoŋ zie zaa a Accra poɔ, a capital ko Miotso a.teŋɛ naŋ peɛle Dawhenya a Greater Accra Region poɔ.
A university's registrar dɛndɛŋ, Johnson Kanda, wa la neɛ ba naŋ daŋ de toma a Univɛniti poɔ, ka o maale kyɛ laŋ a yelsɛgebinii kpoŋ zie zaa taa naŋ seŋ ka a Univɛniti boɔrɔ; o toŋ la a ta yuomo pie wagere 1998 ane 2008 kpakyagaŋ.
o14a3d50m1dg73xuw4f3nvlhos7xl70
62881
62879
2026-07-23T14:01:03Z
Mary Loor
55
62881
wikitext
text/x-wiki
A '''Central University''' e la sommeŋɛ Univɛniti naŋ be a Ghana poɔ, a piili neŋ a International Central Gospel Church (ICGC). O naŋ wa piili o e la pastoral training institute ane Mensah Otabil a 1988 poɔ. June 1991 poɔ, ba wa baŋ o la ka o e a Central Bible College. Puoriŋ la ka o la leɛ a Central Christian College a 1993 poɔ kyɛ pãã wa leɛ a Central University College 1998 poɔ. A 2016 poɔ, Central University College wa arɛɛ o gbɛɛ zuŋ a e a University ona la pampana a Central University. A university ŋa yelnyɔraa la ka o wuli a African noba lesiri ane seeloŋ poɔ meŋɛ nyooroo ne sagediibu. Pampana o e a sommeŋɛ Univɛniti kpoŋ a Ghana poɔ.
== Dakoroŋ ==
1988 poɔ, a ''Central Bible College'' wa piili la.1993 poɔ, o leɛ la a ''Christian University College'' kyɛ la wa leɛ a Central University College (CUC) a 1998 yuoni poɔ, sɛre la ka a yuori pãã leɛ.
Central University College (CUC) e la meŋɛ suobu university college a Ghana poɔ. International Central Gospel Church la so o, neɛ naŋ waneŋ o kyɛ la e a chancellor la, Rev. Dr. Mensa Otabil o na la taa o yuomo pie naŋ pare, a kyɛ e neɛ naŋ maŋ are African Christianity gbɛbogiriŋ ama maŋ ŋmeɛrɛ kpɛle a boɔrɔ yelsonne a kyaare a kirista biiri yelwonni a kyɛ leɛrɛ seeloŋ poɔ yɛlɛ a ennɛ bieou zaa yelserre poɔ. A CUC teɛroŋ wa nyɛ la eebo a1988 poɔ.
CUC piili la faara mine wagere ŋmaa wuluu a ko ICGC faara mine yoŋ. O leɛ la a Christian University College a 1993 poɔ ka o zannoo yeltarre yɛllɛ a yuomo mine naŋ pare poɔ a pãã na poɔ a kirista biiluŋ zannoo ba naŋ boɔlɔ Christian Theology, business administration, economics, computer science ane kɔkɔ paaba mine ba naŋ kyo-iri q poɔ French. A pampana zannoo bɔgere ama maŋ zanne la te ta a baaroo wagere a pãã nyɛ a sakue piilee bommaalee yeltarre ane tēē ziiri a 2008/2009 zannoo yuoni poɔ. A 1998 poɔ, a university college wa nyɛ la zɛgebo kaŋa a yi (NAB). A Ghanaian newspaper wa yini la duoro a kyaare CUC
CUC's naŋ kyɛre baara la kyɛ naŋ meɛrɛ sakue daadaa a Miotso poɔ, a peɛle Dawhenya. A 26 October 2007 poɔ, CUC leɛ taa la a sakuuri kpoŋ zie zaa a Accra poɔ, a capital ko Miotso a.teŋɛ naŋ peɛle Dawhenya a Greater Accra Region poɔ.
A university's registrar dɛndɛŋ, Johnson Kanda, wa la neɛ ba naŋ daŋ de toma a Univɛniti poɔ, ka o maale kyɛ laŋ a yelsɛgebinii kpoŋ zie zaa taa naŋ seŋ ka a Univɛniti boɔrɔ; o toŋ la a ta yuomo pie wagere 1998 ane 2008 kpakyagaŋ.
2pts4x05t68iyoddrj1dqrp8yi8qs2q
62885
62881
2026-07-23T20:16:43Z
Eric Gangman
92
maale embo
62885
wikitext
text/x-wiki
'''Central Yunivenite''' e la neɛkaŋa meŋa sakuuri o naŋ you ka o be a Ghana paaloŋ poɔ, International Central Gospel Church (ICGC) la wane a sakuuri ŋa. Neɛ na meŋa naŋ wa piili a sakuuri la Mensah Otabil a 1988 yuoni poɔ. A doɔbo kyuu a 1991 yuoni poɔ, ba da baŋ o la ka ba boɔlɔ ka Central Bible College. Kyɛ a ba kɔɔre kyɛ ka a yuori a la leɛ ka ba boɔlɔ o ka Central Christtian College a 1993 yuoni poɔ a be la ka o paaŋ sɛre feenfeeŋ ka yuori te leɛ ka ba boɔlɔ kka Central University College a 1998 yuoni poɔ. 2016 yuoni poɔ, a Central Yuniveniti college paaŋ da nyɛ la o meŋa ka yuori are o yoŋ ka ba boɔlɔ o yuori pampana ka Certral Yuniveniti.. A Yuniveniti yelnycgeraa bee bocbo la ka ba toɔ maŋ kpɛ naaŋmene yuori yaare a ko karembiiri kyɛ zaane ne ba babɔl poɔ yelzaa a kyaare yelzaa naŋ viiri koli a Africa paaloŋ poɔ. A Ghana poɔ kyɛ, o e la a Yuniveniti kpoŋ kaŋa naŋ e meŋa soobo yuniveniti.
== Dakoreŋ ==
A 1988 yuoni poɔ la ka a Central Babɔl College ŋa da wa piili. A 1993 yuoni poɔ, ka o leɛ Christian Yuniveniti College sɛre ka o paaŋ baŋ leɛ Ceentral Yuniveniti Colleg ( CUC) a yi a 1998 yuoni poc a yuori naq leɛre.
Central Yuniveniti College (CUC) e la meŋa soobo yuniveniti naŋ be a Ghana poɔ. O e la International Central Gospel Church ŋmene puoribo soobo, a neɛ naŋ de a sakuuri ŋa wa piili la ka ba boɔlɔ ka Rev. Dr. Mensa Otabi, yuomo ayi naŋ pare o da e la a neɛ kaŋa kɔkɔre naŋ de Africa paaloŋ yuori ka o meŋ do saa, a kyaare ne Kirista biiri puoruu yeltarre, o na la ŋmɛ naaŋmene yuori a yaare a Afrika paaloŋ poɔ kpozie zaa, o soŋ la a leɛre yele yaga gyamaa a eŋ te kɔkɔre poɔ . A CUC yelnyɔgeraa ŋa piili la a 1988 yuoni poɔ.
CUC piilu ŋa da e la ŋmaa lɛ ka ba da maŋ wulo noba naaŋmene yelbiri kannoo ŋmɛ yaaroo ICGC. A yi be ka o yuori paaŋ leɛ di ka Christian University College a 1998 yuoni poɔ., a wagere ŋa poɔ ka a sakuuri paaŋ tage ba zannoo gɔɔloŋ, Christian Theology, business administration, economics, computer science, a poɔ kɔkɔɛ zannoo a poɔ French. Kyɛ a zannoo sobie gyamaa zane duobu zaa maŋ e la a degee poɔ a waana ŋaa ba la erɛ la zannoo sobiri kaŋa a nansaala na maŋ boɔle ka architecture ane pharmacy a zannoo ŋa piili la a 2008/2009 yuoni poɔ. A 1998 yuoni poɔ , a gɔbenɛnte da ko la a sakuuri ŋa (NAB).
A ŋaa puoriŋ, a yuniveniti paaŋ da mɛ la zannoo karendire meŋa a Mioso naŋ pele a Dawhenya. A Bompɛ kyuu beri pie ne ayoɔbo dare a 2007 yuoni poɔ, CUC da leɛ wuo la ba zannoo zie a gaa ne a Accra paaloŋ poɔ, a be naŋ e a ghana zaa teŋe kpoŋ a peɛle a Miotso teŋɛ naŋ be a Dawhenya a Greater Accra Region.
A yuniveniti ŋa neɛ naŋ maŋ sɛgere yeli binni da la Johnson Kanda, ona la tontona dɛndɛŋ soba naŋ a yuniveniti ŋa poɔ sɛge yɛlɛ anaŋ zaa naŋ be a yuniveniti ŋa poɔ a, o toŋ la a sakuuri ŋa poɔ a ta ŋa yuomo pie (10) a yi a 1998 ane 2008 yuomo poɔ.
A yuniveniti ŋa zu soba a nansaala na maŋ boɔle ka ( chancellor ) da la a Rev. Mensa Otabil, ona la a naaŋmene yelmanne ba zu soba a ko a International Central Gospel Church (ICGC), a yuniveniti karembiiri wedere kogi zu soba la V. P. Y. Gadzekpo, ona da la a kogi zu soba a yi a 2004 yuoni poɔ te tɔ a 2012 yuoni poɔ. O da de la a kponnoo ŋa a yi Rev. Kingsley Larbi zie ona da la a principal of Central Christian College, a ko a Ghana zaa. Ona la piili a yelŋa a wane a Central Christian College a wa tasoga a nyɔge leɛre ka ba boɔlɔ ka Central University College, Ghana, a be la ka o da e a president bee ka vice-chancellor a yi Kakyɛ kyuu poɔ a 1998 yuoni te tɔ a bɛntuuri kyuu a 2003 yuoni poɔ. A ŋaa puoriŋ, a paaŋ da leɛre la a kponnoŋ a ko Kwesi Yankah. O meŋ da de la a kponnoŋ ŋa a yi ne V. P. Y. Gadzekpo a kpankyaaŋ kyuu beri dɛndɛŋ soba a 2012 yuoni poɔ kyɛ meŋ paaŋ leɛre ko a neɛ naŋ be a pampana ka ba boɔlɔ o ka Bill Buenar Puplampu.
A yuniveniti ŋa da nyɛ la charter president a nansaala na maŋ boɔle a 2016 yuoni poɔ, kyɛ ka pampana ka ba leɛ a boɔlɔ o ka yuniveniti.
=== A Sakuuri Gbɛ-kyɛne ===
· 1984 – The International Central Gospel Church [ICGC] neɛ naŋ wane o la ka ba boɔlɔ ka; Rev. Dr. Mensa Otabil
· 1988 – The ICGC a piili a you sobie ko a na zanne ba lɛ banaŋ na e ŋmɛ naaŋmene yelbiri yaara.
· 1991 – Central Bible College is birthed from the success of the ICGC ministerial institute
· 1993 – Central Bible College is incorporated as the Central Christian College
'''1997'''
· Investiture of Rev. Dr. Mensa Otabil as chancellor
· Central Business School is commissioned
'''1998'''
· Central Bible College a leɛ piili Central University College a paaŋ piili ne a zannoo gɔɔloŋ paala ŋa liberal arts tertiary institution
* Johnson Kanda ka ba iri o ka o e a registrar danweɛŋ soba
· Rev. Kingsley Larbi ka sakuuri da kaa iri ka o e a principal danweɛŋ soba.
· 2002 The Business Development Centre opens for business a piili
· 2003 Development Directorat ka ba iri ka o are o yoŋ toɔraa lɛ a meŋ e Project Office
· 2004 V. P. Y. Gadzekpo a de o kponnoo poɔ kogi ayi soba
· 2006 Faculty of Arts & Social Sciences a piili
· 2007 Quality Assurance Unit a piili
· Vision & Legacy Unit is a piili
· 2008 School of Applied Sciences ka piili de o tona ne toma
· 2009 J. F. Odartey Blankson ka a university's kaa iri ba registrar ayi soab
· Human Resources Directorate a piili
· Centre for International Relations & Programmes ka ba de o tona ne toma
· 2011 School of Graduate Studies ka ba piili o
· William Ofori-Atta Institute of Integrity [WOAII] is instituted
· The historic migration of the university piili la a yi a Mataheko te ta Miotso naŋ piili a 2012 yuoni poɔ
· 2012 Kwesi Yankah ka ba kaa iri o ka a o e a university president ata soba
· 2013 Faculty of Law zannoo pɔgere ŋa piili
Zannoo bɔgere ata da bebe, ka anaŋ la , istinguished Speaker Series, Professorial Inaugural Lectures ane Annual Colloquia are instituted.
A wagere ŋa poɔ la ka CU's Sakuuri paaŋ piili Faculties commence, a Annual Colloquia Series danweɛŋ soba la lɛ.
A lammo poɔ Adigun Agbaje la piili a yele yelbu ane o yelzu ka ona la, Electoral Politics and the Travails of Democracy" in Africa.
'''2014'''
'''A''' noba banaŋ naŋ da wa na wa yele yɛlɛ, a ayi ane a ata soba, da e la Mahamudu Bawumia ane Kwesi Botchwey, ka yelzuri la Restoring the Value of the Cedi" ane "The State of the Nation's Political Economy".
A karemazuzeɛ yuori naŋ di Kwaku Appiah-Adu yelzu da la "A Framework for Oil & Gas Development in Ghana".
A Yuniveniti da nyɛ la kyɔɔtaa a yi ne a [Oxford] ba naŋ la e University & Best Manager
== Organisation ==
A Yuniveniti taa la sakue awai ane zannoo bɔgere ayi
=== Merɛ sakuuri (Faɔulty of Law) ===
A zannoo bɔgere ŋa e bompaala naŋ piili a Miotso campus poɔ.
· Bachelor of Laws (LL.B)
=== '''School of Theology and Missions''' ===
A zannoo bɔgere ŋa la e a bonkoraa a zaa poɔ ona ka ba daŋ piili ne a 1988 yuoni na poɔ a da piili a wulo noba lɛ banaŋ na e a ŋmɛ naaŋmene yuori a a yuniveniti na poɔ a wagere na poɔ.
· Department of Biblical and Theological Studies
· Department of Historical Theology
· Department of Practical Theology
=== Yɛroŋ zannoo ('''Central Business School)''' ===
A zannoo bɔgere ŋa piili la a 1997 yuoni poɔ
· Department of Accounting
· Department of Finance
· Department of Agribusiness Management
· Department of Management and Public Administration
· Department of Human Resource Management
· Department of Marketing
=== '''School of Applied Sciences''' ===
A zannoo bɔgere ama be a Miotso paaloŋ poɔ
· Department of Architecture
· Department of Civil Engineering
· Department of Natural Sciences
· Department of Nursing Studies and Practice
· Department of Pharmaceutical Sciences
· Department of Physician Assistantship Studies
=== '''Faculty of Arts and Social Sciences''' ===
A zannoo ziiiri ata soba la a ŋa, o be la a Dawhenya paaloŋ bee teŋɛ poɔ a zannoo zie ŋa piili la a Bompɛ kyuu a 2006 yuoni poɔ.
· Department of Communication Studies
· Department of Environment and Development Studies
· Department of English Language
· Department of Economics
· Department of French
· Department of Psychology
· Department of Sociology
· Department of social Works
== '''Kumasi Karenzie''' ==
Kumasi campus naŋ be a Calvary Charismatic Church (CCC) peɛle KNUST ane Ayigya Police Station.
== '''Sakue anaŋ naŋ are ba puoriŋ''' ==
· University of Cape Coast, Cape Coast
· Council for Christian Colleges and Universities, USA
· Association of African Universities
· University of Ghana
· Kwame Nkrumah University of Science and Technology
== Noba ==
=== Noba naŋ e '''Chancellors''' ===
· Rev. Dr. Mensa Otabil (1997–a naŋ bebe a waana ŋaa)
=== Noba naŋ di president ===
· Rev. Kingsley Larbi – 1998 to 2003
· P. Y. Gadzekpo FGA 2004 to 2012
· Kwesi Yankah – 2012 to 2017
· Bill Buenar Puplampu – 2017 a naŋ waana zenɛ
=== Noba naŋ e Registrar ===
· Johnson Kanda (1998–2008)
· J. F. Odartey Blankson (2009–2011)
· Emil Afenyo (2016 – a naŋ waana zenɛ)
=== Noba naŋ e viɔe- president ===
· K. Oduro Afriyie – Academic (2006–2012)
· J. F. Odartey Blankson – Finance and Administration (2011 – 2016)
=== Noba naŋ baare a Sakuuri a yi ka noba baŋ gyamaa bee ka yuori a yi do saa ===
· Adina, musician
· Nathan Kwabena Adisi, broadcaster
· Elvis Agyemang, Pastor @ Grace Mountain Ministries - Alpha Hour
· Yvonne Nelson, actress
== Sommo Yizie ==
f62mmzvrms3sr1l8i3yk78ixlbnsl0c
62886
62885
2026-07-23T20:18:25Z
Eric Gangman
92
62886
wikitext
text/x-wiki
{{Databox|item=Q1054042}}'''Central Yunivenite''' e la neɛkaŋa meŋa sakuuri o naŋ you ka o be a Ghana paaloŋ poɔ, International Central Gospel Church (ICGC) la wane a sakuuri ŋa. Neɛ na meŋa naŋ wa piili a sakuuri la Mensah Otabil a 1988 yuoni poɔ. A doɔbo kyuu a 1991 yuoni poɔ, ba da baŋ o la ka ba boɔlɔ ka Central Bible College. Kyɛ a ba kɔɔre kyɛ ka a yuori a la leɛ ka ba boɔlɔ o ka Central Christtian College a 1993 yuoni poɔ a be la ka o paaŋ sɛre feenfeeŋ ka yuori te leɛ ka ba boɔlɔ kka Central University College a 1998 yuoni poɔ. 2016 yuoni poɔ, a Central Yuniveniti college paaŋ da nyɛ la o meŋa ka yuori are o yoŋ ka ba boɔlɔ o yuori pampana ka Certral Yuniveniti.. A Yuniveniti yelnycgeraa bee bocbo la ka ba toɔ maŋ kpɛ naaŋmene yuori yaare a ko karembiiri kyɛ zaane ne ba babɔl poɔ yelzaa a kyaare yelzaa naŋ viiri koli a Africa paaloŋ poɔ. A Ghana poɔ kyɛ, o e la a Yuniveniti kpoŋ kaŋa naŋ e meŋa soobo yuniveniti.
== Dakoreŋ ==
A 1988 yuoni poɔ la ka a Central Babɔl College ŋa da wa piili. A 1993 yuoni poɔ, ka o leɛ Christian Yuniveniti College sɛre ka o paaŋ baŋ leɛ Ceentral Yuniveniti Colleg ( CUC) a yi a 1998 yuoni poc a yuori naq leɛre.
Central Yuniveniti College (CUC) e la meŋa soobo yuniveniti naŋ be a Ghana poɔ. O e la International Central Gospel Church ŋmene puoribo soobo, a neɛ naŋ de a sakuuri ŋa wa piili la ka ba boɔlɔ ka Rev. Dr. Mensa Otabi, yuomo ayi naŋ pare o da e la a neɛ kaŋa kɔkɔre naŋ de Africa paaloŋ yuori ka o meŋ do saa, a kyaare ne Kirista biiri puoruu yeltarre, o na la ŋmɛ naaŋmene yuori a yaare a Afrika paaloŋ poɔ kpozie zaa, o soŋ la a leɛre yele yaga gyamaa a eŋ te kɔkɔre poɔ . A CUC yelnyɔgeraa ŋa piili la a 1988 yuoni poɔ.
CUC piilu ŋa da e la ŋmaa lɛ ka ba da maŋ wulo noba naaŋmene yelbiri kannoo ŋmɛ yaaroo ICGC. A yi be ka o yuori paaŋ leɛ di ka Christian University College a 1998 yuoni poɔ., a wagere ŋa poɔ ka a sakuuri paaŋ tage ba zannoo gɔɔloŋ, Christian Theology, business administration, economics, computer science, a poɔ kɔkɔɛ zannoo a poɔ French. Kyɛ a zannoo sobie gyamaa zane duobu zaa maŋ e la a degee poɔ a waana ŋaa ba la erɛ la zannoo sobiri kaŋa a nansaala na maŋ boɔle ka architecture ane pharmacy a zannoo ŋa piili la a 2008/2009 yuoni poɔ. A 1998 yuoni poɔ , a gɔbenɛnte da ko la a sakuuri ŋa (NAB).
A ŋaa puoriŋ, a yuniveniti paaŋ da mɛ la zannoo karendire meŋa a Mioso naŋ pele a Dawhenya. A Bompɛ kyuu beri pie ne ayoɔbo dare a 2007 yuoni poɔ, CUC da leɛ wuo la ba zannoo zie a gaa ne a Accra paaloŋ poɔ, a be naŋ e a ghana zaa teŋe kpoŋ a peɛle a Miotso teŋɛ naŋ be a Dawhenya a Greater Accra Region.
A yuniveniti ŋa neɛ naŋ maŋ sɛgere yeli binni da la Johnson Kanda, ona la tontona dɛndɛŋ soba naŋ a yuniveniti ŋa poɔ sɛge yɛlɛ anaŋ zaa naŋ be a yuniveniti ŋa poɔ a, o toŋ la a sakuuri ŋa poɔ a ta ŋa yuomo pie (10) a yi a 1998 ane 2008 yuomo poɔ.
A yuniveniti ŋa zu soba a nansaala na maŋ boɔle ka ( chancellor ) da la a Rev. Mensa Otabil, ona la a naaŋmene yelmanne ba zu soba a ko a International Central Gospel Church (ICGC), a yuniveniti karembiiri wedere kogi zu soba la V. P. Y. Gadzekpo, ona da la a kogi zu soba a yi a 2004 yuoni poɔ te tɔ a 2012 yuoni poɔ. O da de la a kponnoo ŋa a yi Rev. Kingsley Larbi zie ona da la a principal of Central Christian College, a ko a Ghana zaa. Ona la piili a yelŋa a wane a Central Christian College a wa tasoga a nyɔge leɛre ka ba boɔlɔ ka Central University College, Ghana, a be la ka o da e a president bee ka vice-chancellor a yi Kakyɛ kyuu poɔ a 1998 yuoni te tɔ a bɛntuuri kyuu a 2003 yuoni poɔ. A ŋaa puoriŋ, a paaŋ da leɛre la a kponnoŋ a ko Kwesi Yankah. O meŋ da de la a kponnoŋ ŋa a yi ne V. P. Y. Gadzekpo a kpankyaaŋ kyuu beri dɛndɛŋ soba a 2012 yuoni poɔ kyɛ meŋ paaŋ leɛre ko a neɛ naŋ be a pampana ka ba boɔlɔ o ka Bill Buenar Puplampu.
A yuniveniti ŋa da nyɛ la charter president a nansaala na maŋ boɔle a 2016 yuoni poɔ, kyɛ ka pampana ka ba leɛ a boɔlɔ o ka yuniveniti.
=== A Sakuuri Gbɛ-kyɛne ===
· 1984 – The International Central Gospel Church [ICGC] neɛ naŋ wane o la ka ba boɔlɔ ka; Rev. Dr. Mensa Otabil
· 1988 – The ICGC a piili a you sobie ko a na zanne ba lɛ banaŋ na e ŋmɛ naaŋmene yelbiri yaara.
· 1991 – Central Bible College is birthed from the success of the ICGC ministerial institute
· 1993 – Central Bible College is incorporated as the Central Christian College
'''1997'''
· Investiture of Rev. Dr. Mensa Otabil as chancellor
· Central Business School is commissioned
'''1998'''
· Central Bible College a leɛ piili Central University College a paaŋ piili ne a zannoo gɔɔloŋ paala ŋa liberal arts tertiary institution
* Johnson Kanda ka ba iri o ka o e a registrar danweɛŋ soba
· Rev. Kingsley Larbi ka sakuuri da kaa iri ka o e a principal danweɛŋ soba.
· 2002 The Business Development Centre opens for business a piili
· 2003 Development Directorat ka ba iri ka o are o yoŋ toɔraa lɛ a meŋ e Project Office
· 2004 V. P. Y. Gadzekpo a de o kponnoo poɔ kogi ayi soba
· 2006 Faculty of Arts & Social Sciences a piili
· 2007 Quality Assurance Unit a piili
· Vision & Legacy Unit is a piili
· 2008 School of Applied Sciences ka piili de o tona ne toma
· 2009 J. F. Odartey Blankson ka a university's kaa iri ba registrar ayi soab
· Human Resources Directorate a piili
· Centre for International Relations & Programmes ka ba de o tona ne toma
· 2011 School of Graduate Studies ka ba piili o
· William Ofori-Atta Institute of Integrity [WOAII] is instituted
· The historic migration of the university piili la a yi a Mataheko te ta Miotso naŋ piili a 2012 yuoni poɔ
· 2012 Kwesi Yankah ka ba kaa iri o ka a o e a university president ata soba
· 2013 Faculty of Law zannoo pɔgere ŋa piili
Zannoo bɔgere ata da bebe, ka anaŋ la , istinguished Speaker Series, Professorial Inaugural Lectures ane Annual Colloquia are instituted.
A wagere ŋa poɔ la ka CU's Sakuuri paaŋ piili Faculties commence, a Annual Colloquia Series danweɛŋ soba la lɛ.
A lammo poɔ Adigun Agbaje la piili a yele yelbu ane o yelzu ka ona la, Electoral Politics and the Travails of Democracy" in Africa.
'''2014'''
'''A''' noba banaŋ naŋ da wa na wa yele yɛlɛ, a ayi ane a ata soba, da e la Mahamudu Bawumia ane Kwesi Botchwey, ka yelzuri la Restoring the Value of the Cedi" ane "The State of the Nation's Political Economy".
A karemazuzeɛ yuori naŋ di Kwaku Appiah-Adu yelzu da la "A Framework for Oil & Gas Development in Ghana".
A Yuniveniti da nyɛ la kyɔɔtaa a yi ne a [Oxford] ba naŋ la e University & Best Manager
== Organisation ==
A Yuniveniti taa la sakue awai ane zannoo bɔgere ayi
=== Merɛ sakuuri (Faɔulty of Law) ===
A zannoo bɔgere ŋa e bompaala naŋ piili a Miotso campus poɔ.
· Bachelor of Laws (LL.B)
=== '''School of Theology and Missions''' ===
A zannoo bɔgere ŋa la e a bonkoraa a zaa poɔ ona ka ba daŋ piili ne a 1988 yuoni na poɔ a da piili a wulo noba lɛ banaŋ na e a ŋmɛ naaŋmene yuori a a yuniveniti na poɔ a wagere na poɔ.
· Department of Biblical and Theological Studies
· Department of Historical Theology
· Department of Practical Theology
=== Yɛroŋ zannoo ('''Central Business School)''' ===
A zannoo bɔgere ŋa piili la a 1997 yuoni poɔ
· Department of Accounting
· Department of Finance
· Department of Agribusiness Management
· Department of Management and Public Administration
· Department of Human Resource Management
· Department of Marketing
=== '''School of Applied Sciences''' ===
A zannoo bɔgere ama be a Miotso paaloŋ poɔ
· Department of Architecture
· Department of Civil Engineering
· Department of Natural Sciences
· Department of Nursing Studies and Practice
· Department of Pharmaceutical Sciences
· Department of Physician Assistantship Studies
=== '''Faculty of Arts and Social Sciences''' ===
A zannoo ziiiri ata soba la a ŋa, o be la a Dawhenya paaloŋ bee teŋɛ poɔ a zannoo zie ŋa piili la a Bompɛ kyuu a 2006 yuoni poɔ.
· Department of Communication Studies
· Department of Environment and Development Studies
· Department of English Language
· Department of Economics
· Department of French
· Department of Psychology
· Department of Sociology
· Department of social Works
== '''Kumasi Karenzie''' ==
Kumasi campus naŋ be a Calvary Charismatic Church (CCC) peɛle KNUST ane Ayigya Police Station.
== '''Sakue anaŋ naŋ are ba puoriŋ''' ==
· University of Cape Coast, Cape Coast
· Council for Christian Colleges and Universities, USA
· Association of African Universities
· University of Ghana
· Kwame Nkrumah University of Science and Technology
== Noba ==
=== Noba naŋ e '''Chancellors''' ===
· Rev. Dr. Mensa Otabil (1997–a naŋ bebe a waana ŋaa)
=== Noba naŋ di president ===
· Rev. Kingsley Larbi – 1998 to 2003
· P. Y. Gadzekpo FGA 2004 to 2012
· Kwesi Yankah – 2012 to 2017
· Bill Buenar Puplampu – 2017 a naŋ waana zenɛ
=== Noba naŋ e Registrar ===
· Johnson Kanda (1998–2008)
· J. F. Odartey Blankson (2009–2011)
· Emil Afenyo (2016 – a naŋ waana zenɛ)
=== Noba naŋ e viɔe- president ===
· K. Oduro Afriyie – Academic (2006–2012)
· J. F. Odartey Blankson – Finance and Administration (2011 – 2016)
=== Noba naŋ baare a Sakuuri a yi ka noba baŋ gyamaa bee ka yuori a yi do saa ===
· Adina, musician
· Nathan Kwabena Adisi, broadcaster
· Elvis Agyemang, Pastor @ Grace Mountain Ministries - Alpha Hour
· Yvonne Nelson, actress
== Sommo Yizie ==
tavnsokl8as1ngnljezvsqcb35du0gr
62887
62886
2026-07-23T20:26:25Z
Eric Gangman
92
/* Sommo Yizie */
62887
wikitext
text/x-wiki
{{Databox|item=Q1054042}}'''Central Yunivenite''' e la neɛkaŋa meŋa sakuuri o naŋ you ka o be a Ghana paaloŋ poɔ, International Central Gospel Church (ICGC)<ref>"ABOUT US | International Central Gospel Church – Hosanna Temple – Teshie, Accra, Ghana". ''International Central Gospel Church''. Archived from the original on 27 November 2016. Retrieved 26 November 2016.</ref> la wane a sakuuri ŋa. Neɛ na meŋa naŋ wa piili a sakuuri la Mensah Otabil a 1988 yuoni poɔ. A doɔbo kyuu a 1991 yuoni poɔ, ba da baŋ o la ka ba boɔlɔ ka Central Bible College. Kyɛ a ba kɔɔre kyɛ ka a yuori a la leɛ ka ba boɔlɔ o ka Central Christtian College a 1993 yuoni poɔ a be la ka o paaŋ sɛre feenfeeŋ ka yuori te leɛ ka ba boɔlɔ kka Central University College a 1998 yuoni poɔ. 2016 yuoni poɔ, a Central Yuniveniti college paaŋ da nyɛ la o meŋa ka yuori are o yoŋ ka ba boɔlɔ o yuori pampana ka Certral Yuniveniti.. A Yuniveniti yelnycgeraa bee bocbo la ka ba toɔ maŋ kpɛ naaŋmene yuori yaare a ko karembiiri kyɛ zaane ne ba babɔl poɔ yelzaa a kyaare yelzaa naŋ viiri koli a Africa paaloŋ poɔ.<ref>"Central University College – All About Us". Central University College. Archived from the original on 6 April 2007. Retrieved 12 March 2007.</ref> A Ghana poɔ kyɛ, o e la a Yuniveniti kpoŋ kaŋa naŋ e meŋa soobo yuniveniti.<ref>"CENTRAL UNIVERSITY COLLEGE – SCHOOL OF APPLIED SCIENCES". Central University College. Retrieved 13 March 2007.</ref><ref>"Central University". ''Times Higher Education (THE)''. 12 April 2022. Retrieved 16 May 2022.</ref>
== Dakoreŋ ==
A 1988 yuoni poɔ la ka a Central Babɔl College ŋa da wa piili. A 1993 yuoni poɔ, ka o leɛ Christian Yuniveniti College sɛre ka o paaŋ baŋ leɛ Ceentral Yuniveniti Colleg ( CUC) a yi a 1998 yuoni poc a yuori naq leɛre.
Central Yuniveniti College (CUC) e la meŋa soobo yuniveniti naŋ be a Ghana poɔ. O e la International Central Gospel Church ŋmene puoribo soobo, a neɛ naŋ de a sakuuri ŋa wa piili la ka ba boɔlɔ ka Rev. Dr. Mensa Otabi,<ref>Amenorhu, Kwaku. "Pastor Mensah Otabil – GNews Ghana – | 2017". ''GNews Ghana''. Archived from the original on 3 August 2021. Retrieved 25 October 2017.</ref> yuomo ayi naŋ pare o da e la a neɛ kaŋa kɔkɔre naŋ de Africa paaloŋ yuori ka o meŋ do saa, a kyaare ne Kirista biiri puoruu yeltarre, o na la ŋmɛ naaŋmene yuori a yaare a Afrika paaloŋ poɔ kpozie zaa, o soŋ la a leɛre yele yaga gyamaa a eŋ te kɔkɔre poɔ . A CUC yelnyɔgeraa ŋa piili la a 1988 yuoni poɔ.
CUC piilu ŋa da e la ŋmaa lɛ ka ba da maŋ wulo noba naaŋmene yelbiri kannoo ŋmɛ yaaroo ICGC. A yi be ka o yuori paaŋ leɛ di ka Christian University College a 1998 yuoni poɔ., a wagere ŋa poɔ ka a sakuuri paaŋ tage ba zannoo gɔɔloŋ, Christian Theology, business administration, economics, computer science, a poɔ kɔkɔɛ zannoo a poɔ French. Kyɛ a zannoo sobie gyamaa zane duobu zaa maŋ e la a degee poɔ a waana ŋaa ba la erɛ la zannoo sobiri kaŋa a nansaala na maŋ boɔle ka architecture ane pharmacy a zannoo ŋa piili la a 2008/2009 yuoni poɔ. A 1998 yuoni poɔ , a gɔbenɛnte da ko la a sakuuri ŋa<ref>National Accreditation Board</ref> (NAB).
A ŋaa puoriŋ, a yuniveniti paaŋ da mɛ la zannoo karendire meŋa a Mioso naŋ pele a Dawhenya. A Bompɛ kyuu beri pie ne ayoɔbo dare a 2007 yuoni poɔ, CUC da leɛ wuo la ba zannoo zie a gaa ne a Accra paaloŋ poɔ, a be naŋ e a ghana zaa teŋe kpoŋ a peɛle a Miotso teŋɛ naŋ be a Dawhenya a Greater Accra Region.
A yuniveniti ŋa neɛ naŋ maŋ sɛgere yeli binni da la Johnson Kanda, ona la tontona dɛndɛŋ soba naŋ a yuniveniti ŋa poɔ sɛge yɛlɛ anaŋ zaa naŋ be a yuniveniti ŋa poɔ a, o toŋ la a sakuuri ŋa poɔ a ta ŋa yuomo pie (10) a yi a 1998 ane 2008 yuomo poɔ.
A yuniveniti ŋa zu soba a nansaala na maŋ boɔle ka ( chancellor ) da la a Rev. Mensa Otabil, ona la a naaŋmene yelmanne ba zu soba a ko a International Central Gospel Church (ICGC), a yuniveniti karembiiri wedere kogi zu soba la V. P. Y. Gadzekpo, ona da la a kogi zu soba a yi a 2004 yuoni poɔ te tɔ a 2012 yuoni poɔ. O da de la a kponnoo ŋa a yi Rev. Kingsley Larbi zie ona da la a principal of Central Christian College, a ko a Ghana zaa. Ona la piili a yelŋa a wane a Central Christian College a wa tasoga a nyɔge leɛre ka ba boɔlɔ ka Central University College, Ghana, a be la ka o da e a president bee ka vice-chancellor a yi Kakyɛ kyuu poɔ a 1998 yuoni te tɔ a bɛntuuri kyuu a 2003 yuoni poɔ. A ŋaa puoriŋ, a paaŋ da leɛre la a kponnoŋ a ko Kwesi Yankah. O meŋ da de la a kponnoŋ ŋa a yi ne V. P. Y. Gadzekpo a kpankyaaŋ kyuu beri dɛndɛŋ soba a 2012 yuoni poɔ kyɛ meŋ paaŋ leɛre ko a neɛ naŋ be a pampana ka ba boɔlɔ o ka Bill Buenar Puplampu.
A yuniveniti ŋa da nyɛ la charter president a nansaala na maŋ boɔle a 2016 yuoni poɔ, kyɛ ka pampana ka ba leɛ a boɔlɔ o ka yuniveniti.
=== A Sakuuri Gbɛ-kyɛne ===
· 1984 – The International Central Gospel Church [ICGC] neɛ naŋ wane o la ka ba boɔlɔ ka; Rev. Dr. Mensa Otabil
· 1988 – The ICGC a piili a you sobie ko a na zanne ba lɛ banaŋ na e ŋmɛ naaŋmene yelbiri yaara.
· 1991 – Central Bible College is birthed from the success of the ICGC ministerial institute
· 1993 – Central Bible College is incorporated as the Central Christian College
'''1997'''
· Investiture of Rev. Dr. Mensa Otabil as chancellor
· Central Business School is commissioned
'''1998'''
· Central Bible College a leɛ piili Central University College a paaŋ piili ne a zannoo gɔɔloŋ paala ŋa liberal arts tertiary institution
* Johnson Kanda ka ba iri o ka o e a registrar danweɛŋ soba
· Rev. Kingsley Larbi ka sakuuri da kaa iri ka o e a principal danweɛŋ soba.
· 2002 The Business Development Centre opens for business a piili
· 2003 Development Directorat ka ba iri ka o are o yoŋ toɔraa lɛ a meŋ e Project Office
· 2004 V. P. Y. Gadzekpo a de o kponnoo poɔ kogi ayi soba
· 2006 Faculty of Arts & Social Sciences a piili
· 2007 Quality Assurance Unit a piili
· Vision & Legacy Unit is a piili
· 2008 School of Applied Sciences ka piili de o tona ne toma
· 2009 J. F. Odartey Blankson ka a university's kaa iri ba registrar ayi soab
· Human Resources Directorate a piili
· Centre for International Relations & Programmes ka ba de o tona ne toma
· 2011 School of Graduate Studies ka ba piili o
· William Ofori-Atta Institute of Integrity [WOAII] is instituted
· The historic migration of the university piili la a yi a Mataheko te ta Miotso naŋ piili a 2012 yuoni poɔ
· 2012 Kwesi Yankah ka ba kaa iri o ka a o e a university president ata soba
· 2013 Faculty of Law zannoo pɔgere ŋa piili
Zannoo bɔgere ata da bebe, ka anaŋ la , istinguished Speaker Series, Professorial Inaugural Lectures ane Annual Colloquia are instituted.
A wagere ŋa poɔ la ka CU's Sakuuri paaŋ piili Faculties commence, a Annual Colloquia Series danweɛŋ soba la lɛ.
A lammo poɔ Adigun Agbaje la piili a yele yelbu ane o yelzu ka ona la, Electoral Politics and the Travails of Democracy" in Africa.
'''2014'''
'''A''' noba banaŋ naŋ da wa na wa yele yɛlɛ, a ayi ane a ata soba, da e la Mahamudu Bawumia ane Kwesi Botchwey, ka yelzuri la Restoring the Value of the Cedi" ane "The State of the Nation's Political Economy".
A karemazuzeɛ yuori naŋ di Kwaku Appiah-Adu yelzu da la "A Framework for Oil & Gas Development in Ghana".
A Yuniveniti da nyɛ la kyɔɔtaa a yi ne a [Oxford] ba naŋ la e University & Best Manager
== Organisation ==
A Yuniveniti taa la sakue<ref>"Central University College – Central University College – | 2024". ''Central University College''. Retrieved 19 November 2024.</ref> awai ane zannoo bɔgere ayi
=== Merɛ sakuuri (Faɔulty of Law) ===
A zannoo bɔgere ŋa e bompaala naŋ piili a Miotso campus poɔ.
· Bachelor of Laws (LL.B)
=== '''School of Theology and Missions''' ===
A zannoo bɔgere ŋa la e a bonkoraa a zaa poɔ ona ka ba daŋ piili ne a 1988 yuoni na poɔ a da piili a wulo noba lɛ banaŋ na e a ŋmɛ naaŋmene yuori a a yuniveniti na poɔ a wagere na poɔ.
· Department of Biblical and Theological Studies
· Department of Historical Theology
· Department of Practical Theology
=== Yɛroŋ zannoo ('''Central Business School)''' ===
A zannoo bɔgere ŋa piili la a 1997 yuoni poɔ
· Department of Accounting
· Department of Finance
· Department of Agribusiness Management
· Department of Management and Public Administration
· Department of Human Resource Management
· Department of Marketing
=== '''School of Applied Sciences''' ===
A zannoo bɔgere ama be a Miotso paaloŋ<ref>"Central University College, Miotso Campus". ''Foursquare''. Retrieved 26 November 2016.</ref><ref>"COURSE OUTLINES AND DESCRIPTIONS". Central University College. Archived from the original on 6 April 2007. Retrieved 12 March 2007.</ref> poɔ
· Department of Architecture
· Department of Civil Engineering
· Department of Natural Sciences
· Department of Nursing Studies and Practice
· Department of Pharmaceutical Sciences
· Department of Physician Assistantship Studies
=== '''Faculty of Arts and Social Sciences''' ===
A zannoo ziiiri ata soba la a ŋa, o be la a Dawhenya paaloŋ bee teŋɛ poɔ a zannoo zie ŋa piili la a Bompɛ kyuu a 2006 yuoni poɔ.
· Department of Communication Studies
· Department of Environment and Development Studies
· Department of English Language
· Department of Economics
· Department of French
· Department of Psychology
· Department of Sociology
· Department of social Works
== '''Kumasi Karenzie''' ==
Kumasi campus naŋ be a Calvary Charismatic Church (CCC) peɛle KNUST ane Ayigya Police Station.
== '''Sakue anaŋ naŋ are ba puoriŋ''' ==
· University of Cape Coast, Cape Coast
· Council for Christian Colleges and Universities, USA<ref>"Affiliates – Central University College". Council for Christian Colleges and Universities. Archived from the original on 3 February 2007. Retrieved 12 March 2007.</ref>
· Association of African Universities
· University of Ghana
· Kwame Nkrumah University of Science and Technology
== Noba ==
=== Noba naŋ e '''Chancellors''' ===
· Rev. Dr. Mensa Otabil (1997–a naŋ bebe a waana ŋaa)
=== Noba naŋ di president ===
· Rev. Kingsley Larbi – 1998 to 2003
· P. Y. Gadzekpo FGA 2004 to 2012
· Kwesi Yankah – 2012 to 2017
· Bill Buenar Puplampu – 2017 a naŋ waana zenɛ<ref>"Presidents of Central university".</ref>
=== Noba naŋ e Registrar ===
· Johnson Kanda (1998–2008)
· J. F. Odartey Blankson (2009–2011)
· Emil Afenyo (2016 – a naŋ waana zenɛ)<ref>"Registrars of Central University".</ref>
=== Noba naŋ e viɔe- president ===
· K. Oduro Afriyie – Academic (2006–2012)
· J. F. Odartey Blankson – Finance and Administration (2011 – 2016)
=== Noba naŋ baare a Sakuuri a yi ka noba baŋ gyamaa bee ka yuori a yi do saa ===
· Adina, musician
· Nathan Kwabena Adisi, broadcaster
· Elvis Agyemang, Pastor @ Grace Mountain Ministries - Alpha Hour
· Yvonne Nelson, actress
== Sommo Yizie ==
na0p4jfsh61ck30slb8rtvhfjv3jy3b
62888
62887
2026-07-23T20:59:24Z
Mary Loor
55
62888
wikitext
text/x-wiki
{{Databox|item=Q1054042}}'''Central Yuniveniti''' e la neɛkaŋa meŋa sakuuri o naŋ yuo ka o be a Ghana paaloŋ poɔ, International Central Gospel Church (ICGC)<ref>"ABOUT US | International Central Gospel Church – Hosanna Temple – Teshie, Accra, Ghana". ''International Central Gospel Church''. Archived from the original on 27 November 2016. Retrieved 26 November 2016.</ref> la wane a sakuuri ŋa. Neɛ na meŋa naŋ wa piili a sakuuri la Mensah Otabil a 1988 yuoni poɔ. A doɔbo kyuu a 1991 yuoni poɔ, ba da baŋ o la ka ba boɔlɔ ka Central Bible College. Kyɛ a ba kɔɔre kyɛ ka a yuori a la leɛ ka ba boɔlɔ o ka Central Christtian College a 1993 yuoni poɔ a be la ka o paaŋ sɛre feenfeeŋ ka yuori te leɛ ka ba boɔlɔ ka Central University College a 1998 yuoni poɔ. 2016 yuoni poɔ, a Central Yuniveniti college paaŋ da nyɛ la o meŋa ka yuori are o yoŋ ka ba boɔlɔ o yuori pampana ka Certral Yuniveniti.. A Yuniveniti yelnyɔgeraa bee boɔbo la ka ba tõɔ maŋ ŋmɛ Naaŋmene yuori yaare a ko karembiiri kyɛ zaane ne ba babɔl poɔ yelzaa a kyaare yelzaa naŋ viiri koli a Africa paaloŋ poɔ.<ref>"Central University College – All About Us". Central University College. Archived from the original on 6 April 2007. Retrieved 12 March 2007.</ref> A Ghana poɔ kyɛ, o e la a Yuniveniti kpoŋ kaŋa naŋ e meŋa soobo yuniveniti.<ref>"CENTRAL UNIVERSITY COLLEGE – SCHOOL OF APPLIED SCIENCES". Central University College. Retrieved 13 March 2007.</ref><ref>"Central University". ''Times Higher Education (THE)''. 12 April 2022. Retrieved 16 May 2022.</ref>
== Dakoreŋ ==
A 1988 yuoni poɔ la ka a Central Babɔl College ŋa da wa piili. A 1993 yuoni poɔ, ka o leɛ Christian Yuniveniti College sɛre ka o paaŋ baŋ leɛ Ceentral Yuniveniti Colleg ( CUC) a yi a 1998 yuoni poɔ a yuori naŋ leɛre.
Central Yuniveniti College (CUC) e la meŋa soobo yuniveniti naŋ be a Ghana poɔ. O e la International Central Gospel Church ŋmene puoribo soobo, a neɛ naŋ de a sakuuri ŋa wa piili la ka ba boɔlɔ ka Rev. Dr. Mensa Otabi,<ref>Amenorhu, Kwaku. "Pastor Mensah Otabil – GNews Ghana – | 2017". ''GNews Ghana''. Archived from the original on 3 August 2021. Retrieved 25 October 2017.</ref> yuomo ayi naŋ pare o da e la a neɛ kaŋa kɔkɔre naŋ de Africa paaloŋ yuori ka o meŋ do saa, a kyaare ne Kirista biiri puoruu yeltarre, o na la ŋmɛ naaŋmene yuori a yaare a Afrika paaloŋ poɔ kponzie zaa, o soŋ la a leɛre yele yaga gyamaa a eŋ te kɔkɔre poɔ . A CUC yelnyɔgeraa ŋa piili la a 1988 yuoni poɔ.
CUC piiluu ŋa da e la ŋmaa lɛ ka ba da maŋ wulo noba naaŋmene yelbiri kannoo ŋmɛ yaaroo ICGC. A yi be ka o yuori paaŋ leɛ di ka Christian University College a 1998 yuoni poɔ, a wagere ŋa poɔ ka a sakuuri paaŋ tage ba zannoo gɔɔloŋ, Christian Theology, business administration, economics, computer science, a poɔ kɔkɔɛ zannoo a poɔ French. Kyɛ a zannoo sobie gyamaa zane duobu zaa maŋ e la a degree poɔ a waana ŋaa ba la erɛ la zannoo sobiri kaŋa a nansaala na maŋ boɔle ka architecture ane pharmacy a zannoo ŋa piili la a 2008/2009 yuoni poɔ. A 1998 yuoni poɔ , a gɔbenɛnte da ko la a sakuuri ŋa<ref>National Accreditation Board</ref> (NAB).
A ŋaa puoriŋ, a yuniveniti paaŋ da mɛ la zannoo karendire meŋa a Mioso naŋ peɛle a Dawhenya. A Bompɛ kyuu beri pie ne ayoɔbo dare a 2007 yuoni poɔ, CUC da leɛ wuo la ba zannoo zie a gaa ne a Accra paaloŋ poɔ, a be naŋ e a Ghana zaa teŋe kpoŋ a peɛle a Miotso teŋɛ naŋ be a Dawhenya a Greater Accra Region.
A yuniveniti ŋa neɛ naŋ maŋ sɛgere yeli binni da la Johnson Kanda, ona la tontona dɛndɛŋ soba naŋ be a yuniveniti ŋa poɔ sɛge yɛlɛ anaŋ zaa naŋ be a yuniveniti ŋa poɔ a, o toŋ la a sakuuri ŋa poɔ a ta ŋa yuomo pie (10) a yi a 1998 ane 2008 yuomo poɔ.
A yuniveniti ŋa zu soba a nansaala na maŋ boɔle ka ( chancellor ) da la a Rev. Mensa Otabil, ona la a naaŋmene yelmanne ba zu soba a ko a International Central Gospel Church (ICGC), a yuniveniti karembiiri wedere kogi zu soba la V. P. Y. Gadzekpo, ona da la a kogi zu soba a yi a 2004 yuoni poɔ te tɔ a 2012 yuoni poɔ. O da de la a kponnoo ŋa a yi Rev. Kingsley Larbi zie ona da la a principal of Central Christian College, a ko a Ghana zaa. Ona la piili a yelŋa a wane a Central Christian College a wa tasoga a nyɔge leɛre ka ba boɔlɔ ka Central University College, Ghana, a be la ka o da e a president bee ka vice-chancellor a yi Kakyɛ kyuu poɔ a 1998 yuoni te tɔ a bɛntuuri kyuu a 2003 yuoni poɔ. A ŋaa puoriŋ, a paaŋ da leɛre la a kponnoŋ a ko Kwesi Yankah. O meŋ da de la a kponnoŋ ŋa a yi ne V. P. Y. Gadzekpo a kpankyaaŋ kyuu beri dɛndɛŋ soba a 2012 yuoni poɔ kyɛ meŋ paaŋ leɛre ko a neɛ naŋ be a pampana ka ba boɔlɔ o ka Bill Buenar Puplampu.
A yuniveniti ŋa da nyɛ la charter president a nansaala na maŋ boɔle a 2016 yuoni poɔ, kyɛ ka pampana ka ba leɛ a boɔlɔ o ka yuniveniti.
=== A Sakuuri Gbɛ-kyɛne ===
· 1984 – The International Central Gospel Church [ICGC] neɛ naŋ wane o la ka ba boɔlɔ ka; Rev. Dr. Mensa Otabil
· 1988 – The ICGC a piili a you sobie ko a na zanne ba lɛ banaŋ na e ŋmɛ naaŋmene yelbiri yaara.
· 1991 – Central Bible College is birthed from the success of the ICGC ministerial institute
· 1993 – Central Bible College is incorporated as the Central Christian College
'''1997'''
· Investiture of Rev. Dr. Mensa Otabil as chancellor
· Central Business School is commissioned
'''1998'''
· Central Bible College a leɛ piili Central University College a paaŋ piili ne a zannoo gɔɔloŋ paala ŋa liberal arts tertiary institution
* Johnson Kanda ka ba iri o ka o e a registrar danweɛŋ soba
· Rev. Kingsley Larbi ka sakuuri da kaa iri ka o e a principal danweɛŋ soba.
· 2002 The Business Development Centre opens for business a piili
· 2003 Development Directorat ka ba iri ka o are o yoŋ toɔraa lɛ a meŋ e Project Office
· 2004 V. P. Y. Gadzekpo a de o kponnoo poɔ kogi ayi soba
· 2006 Faculty of Arts & Social Sciences a piili
· 2007 Quality Assurance Unit a piili
· Vision & Legacy Unit is a piili
· 2008 School of Applied Sciences ka piili de o tona ne toma
· 2009 J. F. Odartey Blankson ka a university's kaa iri ba registrar ayi soab
· Human Resources Directorate a piili
· Centre for International Relations & Programmes ka ba de o tona ne toma
· 2011 School of Graduate Studies ka ba piili o
· William Ofori-Atta Institute of Integrity [WOAII] is instituted
· The historic migration of the university piili la a yi a Mataheko te ta Miotso naŋ piili a 2012 yuoni poɔ
· 2012 Kwesi Yankah ka ba kaa iri o ka a o e a university president ata soba
· 2013 Faculty of Law zannoo pɔgere ŋa piili
Zannoo bɔgere ata da bebe, ka anaŋ la , istinguished Speaker Series, Professorial Inaugural Lectures ane Annual Colloquia are instituted.
A wagere ŋa poɔ la ka CU's Sakuuri paaŋ piili Faculties commence, a Annual Colloquia Series danweɛŋ soba la lɛ.
A lammo poɔ Adigun Agbaje la piili a yele yelbu ane o yelzu ka ona la, Electoral Politics and the Travails of Democracy" in Africa.
'''2014'''
'''A''' noba banaŋ naŋ da wa na wa yele yɛlɛ, a ayi ane a ata soba, da e la Mahamudu Bawumia ane Kwesi Botchwey, ka yelzuri la Restoring the Value of the Cedi" ane "The State of the Nation's Political Economy".
A karemazuzeɛ yuori naŋ di Kwaku Appiah-Adu yelzu da la "A Framework for Oil & Gas Development in Ghana".
A Yuniveniti da nyɛ la kyɔɔtaa a yi ne a [Oxford] ba naŋ la e University & Best Manager
== Organisation ==
A Yuniveniti taa la sakue<ref>"Central University College – Central University College – | 2024". ''Central University College''. Retrieved 19 November 2024.</ref> awai ane zannoo bɔgere ayi
=== Merɛ sakuuri (Faɔulty of Law) ===
A zannoo bɔgere ŋa e bompaala naŋ piili a Miotso campus poɔ.
· Bachelor of Laws (LL.B)
=== '''School of Theology and Missions''' ===
A zannoo bɔgere ŋa la e a bonkoraa a zaa poɔ ona ka ba daŋ piili ne a 1988 yuoni na poɔ a da piili a wulo noba lɛ banaŋ na e a ŋmɛ naaŋmene yuori a a yuniveniti na poɔ a wagere na poɔ.
· Department of Biblical and Theological Studies
· Department of Historical Theology
· Department of Practical Theology
=== Yɛroŋ zannoo ('''Central Business School)''' ===
A zannoo bɔgere ŋa piili la a 1997 yuoni poɔ
· Department of Accounting
· Department of Finance
· Department of Agribusiness Management
· Department of Management and Public Administration
· Department of Human Resource Management
· Department of Marketing
=== '''School of Applied Sciences''' ===
A zannoo bɔgere ama be a Miotso paaloŋ<ref>"Central University College, Miotso Campus". ''Foursquare''. Retrieved 26 November 2016.</ref><ref>"COURSE OUTLINES AND DESCRIPTIONS". Central University College. Archived from the original on 6 April 2007. Retrieved 12 March 2007.</ref> poɔ
· Department of Architecture
· Department of Civil Engineering
· Department of Natural Sciences
· Department of Nursing Studies and Practice
· Department of Pharmaceutical Sciences
· Department of Physician Assistantship Studies
=== '''Faculty of Arts and Social Sciences''' ===
A zannoo ziiiri ata soba la a ŋa, o be la a Dawhenya paaloŋ bee teŋɛ poɔ a zannoo zie ŋa piili la a Bompɛ kyuu a 2006 yuoni poɔ.
· Department of Communication Studies
· Department of Environment and Development Studies
· Department of English Language
· Department of Economics
· Department of French
· Department of Psychology
· Department of Sociology
· Department of social Works
== '''Kumasi Karenzie''' ==
Kumasi campus naŋ be a Calvary Charismatic Church (CCC) peɛle KNUST ane Ayigya Police Station.
== '''Sakue anaŋ naŋ are ba puoriŋ''' ==
· University of Cape Coast, Cape Coast
· Council for Christian Colleges and Universities, USA<ref>"Affiliates – Central University College". Council for Christian Colleges and Universities. Archived from the original on 3 February 2007. Retrieved 12 March 2007.</ref>
· Association of African Universities
· University of Ghana
· Kwame Nkrumah University of Science and Technology
== Noba ==
=== Noba naŋ e '''Chancellors''' ===
· Rev. Dr. Mensa Otabil (1997–a naŋ bebe a waana ŋaa)
=== Noba naŋ di president ===
· Rev. Kingsley Larbi – 1998 to 2003
· P. Y. Gadzekpo FGA 2004 to 2012
· Kwesi Yankah – 2012 to 2017
· Bill Buenar Puplampu – 2017 a naŋ waana zenɛ<ref>"Presidents of Central university".</ref>
=== Noba naŋ e Registrar ===
· Johnson Kanda (1998–2008)
· J. F. Odartey Blankson (2009–2011)
· Emil Afenyo (2016 – a naŋ waana zenɛ)<ref>"Registrars of Central University".</ref>
=== Noba naŋ e viɔe- president ===
· K. Oduro Afriyie – Academic (2006–2012)
· J. F. Odartey Blankson – Finance and Administration (2011 – 2016)
=== Noba naŋ baare a Sakuuri a yi ka noba baŋ gyamaa bee ka yuori a yi do saa ===
· Adina, musician
· Nathan Kwabena Adisi, broadcaster
· Elvis Agyemang, Pastor @ Grace Mountain Ministries - Alpha Hour
· Yvonne Nelson, actress
== Sommo Yizie ==
3we4lgewmf4uvyiluirgy2kp2jdxdi1
62891
62888
2026-07-23T21:48:35Z
Mary Loor
55
62891
wikitext
text/x-wiki
{{Databox|item=Q1054042}}'''Central Yuniveniti''' e la neɛkaŋa meŋa sakuuri o naŋ yuo ka o be a Ghana paaloŋ poɔ, International Central Gospel Church (ICGC)<ref>"ABOUT US | International Central Gospel Church – Hosanna Temple – Teshie, Accra, Ghana". ''International Central Gospel Church''. Archived from the original on 27 November 2016. Retrieved 26 November 2016.</ref> la wane a sakuuri ŋa. Neɛ na meŋa naŋ wa piili a sakuuri la Mensah Otabil a 1988 yuoni poɔ. A doɔbo kyuu a 1991 yuoni poɔ, ba da baŋ o la ka ba boɔlɔ ka Central Bible College. Kyɛ a ba kɔɔre kyɛ ka a yuori a la leɛ ka ba boɔlɔ o ka Central Christtian College a 1993 yuoni poɔ a be la ka o paaŋ sɛre feenfeeŋ ka yuori te leɛ ka ba boɔlɔ ka Central University College a 1998 yuoni poɔ. 2016 yuoni poɔ, a Central Yuniveniti college paaŋ da nyɛ la o meŋa ka yuori are o yoŋ ka ba boɔlɔ o yuori pampana ka Certral Yuniveniti.. A Yuniveniti yelnyɔgeraa bee boɔbo la ka ba tõɔ maŋ ŋmɛ Naaŋmene yuori yaare a ko karembiiri kyɛ zaane ne ba babɔl poɔ yelzaa a kyaare yelzaa naŋ viiri koli a Africa paaloŋ poɔ.<ref>"Central University College – All About Us". Central University College. Archived from the original on 6 April 2007. Retrieved 12 March 2007.</ref> A Ghana poɔ kyɛ, o e la a Yuniveniti kpoŋ kaŋa naŋ e meŋa soobo yuniveniti.<ref>"CENTRAL UNIVERSITY COLLEGE – SCHOOL OF APPLIED SCIENCES". Central University College. Retrieved 13 March 2007.</ref><ref>"Central University". ''Times Higher Education (THE)''. 12 April 2022. Retrieved 16 May 2022.</ref>
== Dakoreŋ ==
A 1988 yuoni poɔ la ka a Central Babɔl College ŋa da wa piili. A 1993 yuoni poɔ, ka o leɛ Christian Yuniveniti College sɛre ka o paaŋ baŋ leɛ Central Yuniveniti Colleg ( CUC) a yi a 1998 yuoni poɔ a yuori naŋ leɛre.
Central Yuniveniti College (CUC) e la meŋa soobo yuniveniti naŋ be a Ghana poɔ. O e la International Central Gospel Church ŋmene puoribo soobo, a neɛ naŋ de a sakuuri ŋa wa piili la ka ba boɔlɔ ka Rev. Dr. Mensa Otabi,<ref>Amenorhu, Kwaku. "Pastor Mensah Otabil – GNews Ghana – | 2017". ''GNews Ghana''. Archived from the original on 3 August 2021. Retrieved 25 October 2017.</ref> yuomo ayi naŋ pare o da e la a neɛ kaŋa kɔkɔre naŋ de Africa paaloŋ yuori ka o meŋ do saa, a kyaare ne Kirista biiri puoruu yeltarre, o na la ŋmɛ naaŋmene yuori a yaare a Afrika paaloŋ poɔ kponzie zaa, o soŋ la a leɛre yele yaga gyamaa a eŋ te kɔkɔre poɔ . A CUC yelnyɔgeraa ŋa piili la a 1988 yuoni poɔ.
CUC piiluu ŋa da e la ŋmaa lɛ ka ba da maŋ wulo noba naaŋmene yelbiri kannoo ŋmɛ yaaroo ICGC. A yi be ka o yuori paaŋ leɛ di ka Christian University College a 1998 yuoni poɔ, a wagere ŋa poɔ ka a sakuuri paaŋ tage ba zannoo gɔɔloŋ, Christian Theology, business administration, economics, computer science, a poɔ kɔkɔɛ zannoo a poɔ French. Kyɛ a zannoo sobie gyamaa zane duobu zaa maŋ e la a degree poɔ a waana ŋaa ba la erɛ la zannoo sobiri kaŋa a nansaala na maŋ boɔle ka architecture ane pharmacy a zannoo ŋa piili la a 2008/2009 yuoni poɔ. A 1998 yuoni poɔ , a gɔbenɛnte da ko la a sakuuri ŋa<ref>National Accreditation Board</ref> (NAB).
A ŋaa puoriŋ, a yuniveniti paaŋ da mɛ la zannoo karendire meŋa a Mioso naŋ peɛle a Dawhenya. A Bompɛ kyuu beri pie ne ayoɔbo dare a 2007 yuoni poɔ, CUC da leɛ wuo la ba zannoo zie a gaa ne a Accra paaloŋ poɔ, a be naŋ e a Ghana zaa teŋe kpoŋ a peɛle a Miotso teŋɛ naŋ be a Dawhenya a Greater Accra Region.
A yuniveniti ŋa neɛ naŋ maŋ sɛgere yeli binni da la Johnson Kanda, ona la tontona dɛndɛŋ soba naŋ be a yuniveniti ŋa poɔ sɛge yɛlɛ anaŋ zaa naŋ be a yuniveniti ŋa poɔ a, o toŋ la a sakuuri ŋa poɔ a ta ŋa yuomo pie (10) a yi a 1998 ane 2008 yuomo poɔ.
A yuniveniti ŋa zu soba a nansaala na maŋ boɔle ka ( chancellor ) da la a Rev. Mensa Otabil, ona la a naaŋmene yelmanne ba zu soba a ko a International Central Gospel Church (ICGC), a yuniveniti karembiiri wedere kogi zu soba la V. P. Y. Gadzekpo, ona da la a kogi zu soba a yi a 2004 yuoni poɔ te tɔ a 2012 yuoni poɔ. O da de la a kponnoo ŋa a yi Rev. Kingsley Larbi zie ona da la a principal of Central Christian College, a ko a Ghana zaa. Ona la piili a yelŋa a wane a Central Christian College a wa tasoga a nyɔge leɛre ka ba boɔlɔ ka Central University College, Ghana, a be la ka o da e a president bee ka vice-chancellor a yi Kakyɛ kyuu poɔ a 1998 yuoni te tɔ a bɛntuuri kyuu a 2003 yuoni poɔ. A ŋaa puoriŋ, a paaŋ da leɛre la a kponnoŋ a ko Kwesi Yankah. O meŋ da de la a kponnoŋ ŋa a yi ne V. P. Y. Gadzekpo a kpankyaaŋ kyuu beri dɛndɛŋ soba a 2012 yuoni poɔ kyɛ meŋ paaŋ leɛre ko a neɛ naŋ be a pampana ka ba boɔlɔ o ka Bill Buenar Puplampu.
A yuniveniti ŋa da nyɛ la charter president a nansaala na maŋ boɔle a 2016 yuoni poɔ, kyɛ ka pampana ka ba leɛ a boɔlɔ o ka yuniveniti.
=== A Sakuuri Gbɛ-kyɛne ===
· 1984 – The International Central Gospel Church [ICGC] neɛ naŋ wane o la ka ba boɔlɔ ka; Rev. Dr. Mensa Otabil
· 1988 – The ICGC a piili a you sobie ko a na zanne ba lɛ banaŋ na e ŋmɛ naaŋmene yelbiri yaara.
· 1991 – Central Bible College is birthed from the success of the ICGC ministerial institute
· 1993 – Central Bible College is incorporated as the Central Christian College
'''1997'''
· Investiture of Rev. Dr. Mensa Otabil as chancellor
· Central Business School is commissioned
'''1998'''
· Central Bible College a leɛ piili Central University College a paaŋ piili ne a zannoo gɔɔloŋ paala ŋa liberal arts tertiary institution
* Johnson Kanda ka ba iri o ka o e a registrar danweɛŋ soba
· Rev. Kingsley Larbi ka sakuuri da kaa iri ka o e a principal danweɛŋ soba.
· 2002 The Business Development Centre opens for business a piili
· 2003 Development Directorat ka ba iri ka o are o yoŋ toɔraa lɛ a meŋ e Project Office
· 2004 V. P. Y. Gadzekpo a de o kponnoo poɔ kogi ayi soba
· 2006 Faculty of Arts & Social Sciences a piili
· 2007 Quality Assurance Unit a piili
· Vision & Legacy Unit is a piili
· 2008 School of Applied Sciences ka piili de o tona ne toma
· 2009 J. F. Odartey Blankson ka a university's kaa iri ba registrar ayi soab
· Human Resources Directorate a piili
· Centre for International Relations & Programmes ka ba de o tona ne toma
· 2011 School of Graduate Studies ka ba piili o
· William Ofori-Atta Institute of Integrity [WOAII] is instituted
· The historic migration of the university piili la a yi a Mataheko te ta Miotso naŋ piili a 2012 yuoni poɔ
· 2012 Kwesi Yankah ka ba kaa iri o ka a o e a university president ata soba
· 2013 Faculty of Law zannoo pɔgere ŋa piili
Zannoo bɔgere ata da bebe, ka anaŋ la , istinguished Speaker Series, Professorial Inaugural Lectures ane Annual Colloquia are instituted.
A wagere ŋa poɔ la ka CU's Sakuuri paaŋ piili Faculties commence, a Annual Colloquia Series danweɛŋ soba la lɛ.
A lammo poɔ Adigun Agbaje la piili a yele yelbu ane o yelzu ka ona la, Electoral Politics and the Travails of Democracy" in Africa.
'''2014'''
'''A''' noba banaŋ naŋ da wa na wa yele yɛlɛ, a ayi ane a ata soba, da e la Mahamudu Bawumia ane Kwesi Botchwey, ka yelzuri la Restoring the Value of the Cedi" ane "The State of the Nation's Political Economy".
A karemazuzeɛ yuori naŋ di Kwaku Appiah-Adu yelzu da la "A Framework for Oil & Gas Development in Ghana".
A Yuniveniti da nyɛ la kyɔɔtaa a yi ne a [Oxford] ba naŋ la e University & Best Manager
== Organisation ==
A Yuniveniti taa la sakue<ref>"Central University College – Central University College – | 2024". ''Central University College''. Retrieved 19 November 2024.</ref> awai ane zannoo bɔgere ayi
=== Merɛ sakuuri (Faɔulty of Law) ===
A zannoo bɔgere ŋa e bompaala naŋ piili a Miotso campus poɔ.
· Bachelor of Laws (LL.B)
=== '''School of Theology and Missions''' ===
A zannoo bɔgere ŋa la e a bonkoraa a zaa poɔ ona ka ba daŋ piili ne a 1988 yuoni na poɔ a da piili a wulo noba lɛ banaŋ na e a ŋmɛ naaŋmene yuori a a yuniveniti na poɔ a wagere na poɔ.
· Department of Biblical and Theological Studies
· Department of Historical Theology
· Department of Practical Theology
=== Yɛroŋ zannoo ('''Central Business School)''' ===
A zannoo bɔgere ŋa piili la a 1997 yuoni poɔ
· Department of Accounting
· Department of Finance
· Department of Agribusiness Management
· Department of Management and Public Administration
· Department of Human Resource Management
· Department of Marketing
=== '''School of Applied Sciences''' ===
A zannoo bɔgere ama be a Miotso paaloŋ<ref>"Central University College, Miotso Campus". ''Foursquare''. Retrieved 26 November 2016.</ref><ref>"COURSE OUTLINES AND DESCRIPTIONS". Central University College. Archived from the original on 6 April 2007. Retrieved 12 March 2007.</ref> poɔ
· Department of Architecture
· Department of Civil Engineering
· Department of Natural Sciences
· Department of Nursing Studies and Practice
· Department of Pharmaceutical Sciences
· Department of Physician Assistantship Studies
=== '''Faculty of Arts and Social Sciences''' ===
A zannoo ziiiri ata soba la a ŋa, o be la a Dawhenya paaloŋ bee teŋɛ poɔ a zannoo zie ŋa piili la a Bompɛ kyuu a 2006 yuoni poɔ.
· Department of Communication Studies
· Department of Environment and Development Studies
· Department of English Language
· Department of Economics
· Department of French
· Department of Psychology
· Department of Sociology
· Department of social Works
== '''Kumasi Karenzie''' ==
Kumasi campus naŋ be a Calvary Charismatic Church (CCC) peɛle KNUST ane Ayigya Police Station.
== '''Sakue anaŋ naŋ are ba puoriŋ''' ==
· University of Cape Coast, Cape Coast
· Council for Christian Colleges and Universities, USA<ref>"Affiliates – Central University College". Council for Christian Colleges and Universities. Archived from the original on 3 February 2007. Retrieved 12 March 2007.</ref>
· Association of African Universities
· University of Ghana
· Kwame Nkrumah University of Science and Technology
== Noba ==
=== Noba naŋ e '''Chancellors''' ===
· Rev. Dr. Mensa Otabil (1997–a naŋ bebe a waana ŋaa)
=== Noba naŋ di president ===
· Rev. Kingsley Larbi – 1998 to 2003
· P. Y. Gadzekpo FGA 2004 to 2012
· Kwesi Yankah – 2012 to 2017
· Bill Buenar Puplampu – 2017 a naŋ waana zenɛ<ref>"Presidents of Central university".</ref>
=== Noba naŋ e Registrar ===
· Johnson Kanda (1998–2008)
· J. F. Odartey Blankson (2009–2011)
· Emil Afenyo (2016 – a naŋ waana zenɛ)<ref>"Registrars of Central University".</ref>
=== Noba naŋ e viɔe- president ===
· K. Oduro Afriyie – Academic (2006–2012)
· J. F. Odartey Blankson – Finance and Administration (2011 – 2016)
=== Noba naŋ baare a Sakuuri a yi ka noba baŋ gyamaa bee ka yuori a yi do saa ===
· Adina, musician
· Nathan Kwabena Adisi, broadcaster
· Elvis Agyemang, Pastor @ Grace Mountain Ministries - Alpha Hour
· Yvonne Nelson, actress
== Sommo Yizie ==
i49fio5emetl7xb8fivzit2ntjscorc
Valley View University
0
7332
62890
2026-07-23T21:36:16Z
Mary Loor
55
Created page with "'''Valley View''' '''Yuniveniiti''' e la someŋɛ yuniveniti naŋ taa sakue ka a be Oyibi (Accra), Kumasi ane Techiman (Sunyani) a gaŋaazaa Greater Accra, Ashanti ane Bono East regions a Ghana poɔ. O paale la a andonɛɛ zie zaa naŋ taa ŋa yunivenitiri kɔɔ ka Seventh-day Adventist puoruu tona neŋ O poɔ la a Seventh-day Adventist zannoo yeltarre poɔ, o are la a kirista biiluŋ puoruu sakuuri yeltarre kpoŋ ayi soba."
62890
wikitext
text/x-wiki
'''Valley View''' '''Yuniveniiti''' e la someŋɛ yuniveniti naŋ taa sakue ka a be Oyibi (Accra), Kumasi ane Techiman (Sunyani) a gaŋaazaa Greater Accra, Ashanti ane Bono East regions a Ghana poɔ. O paale la a andonɛɛ zie zaa naŋ taa ŋa yunivenitiri kɔɔ ka Seventh-day Adventist puoruu tona neŋ
O poɔ la a Seventh-day Adventist zannoo yeltarre poɔ, o are la a kirista biiluŋ puoruu sakuuri yeltarre kpoŋ ayi soba.
lih8yjnivbq4v0u1n7a90gu0bjeypss
62892
62890
2026-07-23T21:52:16Z
Mary Loor
55
62892
wikitext
text/x-wiki
'''Valley View''' '''Yuniveniiti''' e la someŋɛ yuniveniti naŋ taa sakue ka a be Oyibi (Accra), Kumasi ane Techiman (Sunyani) a gaŋaazaa Greater Accra, Ashanti ane Bono East regions a Ghana poɔ. O paale la a andonɛɛ ziiri zaa ataa ŋa yunivenitiri kɔɔ ka Seventh-day Adventist puoruu tona neŋ
O poɔ la a Seventh-day Adventist zannoo yeltarre poɔ, o are la a kirista biiluŋ puoruu sakuuri yeltarre kpoŋ ayi soba.
h1c8zi2pi65n2qb2t3rwx47s7tlxkd8
Regent University College of Science and Technology
0
7333
62893
2026-07-23T22:10:53Z
Ningeng paula
1176
Added Article
62893
wikitext
text/x-wiki
==== Department of Accounting and Finance ====
* BSc (Hons) Accounting and Information Systems
* BSc (Hons) Banking and Finance
==== Department of Management and Economics ====
* BSc (Hons) Management with Computing
* BBA eCommerce
=== Faculty of Arts and Sciences ===
==== Department of Psychology ====
* BSc Human Development and Psychology
==== Department of Theology, Ministry and Pentecostal Studies ====
* Bachelor of Theology with Management (Honours)
=== Faculty of Engineering, Computing and Allied Sciences (FECAS) ===
The School of Engineering, Computing and Allied Sciences (FECAS) provides ICT-based university education. The following are the departments under the school and the undergraduate degree programmes they offer:
==== Department of Informatics ====
* BSc (Hons) Computer Science
* BSc (Hons) Information Systems Sciences
==== Department of Engineering & Mathematical Sciences ====
* BEng (Hons) Applied Electronics & Systems Engineering
** Telecommunications Engineering Option
** Computer Engineering Option
** Instrumentation Engineering Option
== Postgraduate studies ==
Accredited postgraduate degree programmes that the university offers are:
* Master of Business Administration (MBA)
* Master of Science in Statistics
* Master of Divinity
* Master of Theology
* MSc / MPhil Energy and Sustainability Management
* MSc Law and Corporate Administration
== Affiliations ==
The university is affiliated to five other universities.
* Kwame Nkrumah University of Science and Technology
* University of Education, Winneba, Ghana
* Universidad Católica de Murcia, Spain
* Acadia University, Nova Scotia, Canada
* Deggendorf University of Applied Sciences, Deggendorf, Germany
* Umwelt Campus Birkenfeld, Trier University of Applied Sciences, Germany
* Luleå University of Technology, Sweden
* Wheelock College, Boston, USA
== See also ==
* List of universities in Ghana
== References ==
<references responsive="1"></references>
qz7izh20l2725td9bqi1m9ddgoutlz3
Pentecost University
0
7334
62894
2026-07-23T22:26:59Z
Eric Gangman
92
Bompaala maaloo
62894
wikitext
text/x-wiki
'''Pentecost University,''' e la meŋa soobo yuniveniti kaŋa naŋ be a Sowutuom, naŋ be a Greater Accra Irigiŋ a Ghana paaloŋ poɔ. Neɛ naŋ wane bee a piili a sakuuri ŋa la Church of Pentecost (COP) ane banaŋ ŋmaa viiri a Pentecost Bible College, a sakuuri ŋa yelwonaa bee tontnne zaa da la ka ba maŋ wuli noba ka ba baŋ naaŋmene yelbiri a yi COP yuori eŋɛ. A Borebo kyuu beri lezare ne ayi dare a 2003 yuoni poɔ, Ghana<ref>"President Akufo-Addo Presents Charters To Pentecost University And All Nations University". ''presidency.gov.gh''. 28 May 2020. Archived from the original on 2024-12-14. Retrieved 2020-07-05.</ref><ref>pentvars (2020-05-28). "PUC Receives Presidential Charter". ''Pentecost University''. Retrieved 2020-07-05.</ref><ref>Ashiadey, Bernard Yaw (2020-05-28). "Pentecost, All Nations universities receive presidential charters … set to award own degrees". ''Business Financial Times Online | Economy, World, Finances, IT, ICT, Business''. Retrieved 2020-07-05.</ref> paaloŋ zaa yidaadɔɔ J. A. Kufuor da gaa la a PUC naŋ da taa lammo kpoŋ kaŋa a Sowutuom sakuuri poɔ a te lanne ba. PUC kpaaroŋ lammo dɛndɛŋ soba da e la Borebo kyuu bebie ayoɔbo dare a 2004 yuoni poɔ. A yuoni na poɔ la ka a Pentecost University da nyɛ ba karatare a yi a gɔbenɛnte zie a nansaala naŋ maŋ boɔle ka “ National Accreditation Board (NAB) a ghana poɔ, ba da nyɛ la a karattera ŋa a Kakyɛ kyuu poɔ a 2004 yuoni poɔ, a wagere ŋa la ka ba da de a ba kogi zu soba a ko Nana Addo Dankwa Akufo-Addo, a borebo kyuu beri lezare ne anii dare a 2020 yuoni na poɔ, a wagere bee a yuoni ŋa poɔ ne o zu la ka o danaŋ e a Ghana<ref>Ashiadey, Bernard Yaw (2020-05-28). "Pentecost, All Nations universities receive presidential charters … set to award own degrees". ''Business Financial Times Online | Economy, World, Finances, IT, ICT, Business''. Retrieved 2020-07-05.</ref> paaloŋ zaa kogi zu soba (President of the Republic of Ghana.) A wagere ŋ poɔ banaŋ da nyɛ a Presidential Charter ŋa, a yuniveniti paaŋ da be la a Kwame Nkrumah University of Science and Technology, University of Cape Coast, ane University of Ghana nuuri poɔ. A doɔbo kyuu beri dɛndɛŋ soba dare a 2020 yuoni poɔ, a yuniveniti da ŋmɛ la daworo a ko gyamaa banaŋ kaa iri Rev. Prof. Kwabena Agyapong-Kodua, ka o are leɛre a Apostle Daniel Okyere Walker zu a e Vice-Chancellor danweɛŋ soba a yuniveniti meŋa naŋ kaa iri.<ref>pentvars (2020-06-01). "Pentecost University gets new Vice-Chancellor". ''Pentecost University''. Retrieved 2020-07-05.</ref>
A karembiiri naŋ be a sakuuri ŋa poɔ ta la 3000, kyɛ a karembiiri bama zaa da be la a be a zanna ka zaa a yi ne degree karatare.
Pentecost University bezie meŋa a Sowutuom poɔ la e a ka sakuuri meŋa, o ba maaleŋ be a Accra paaloŋ meŋa bee nyaa poɔ. Sowutuom ( o tɛgɛ bee pare “ taa bee nyɔge a fo malefa) a zie ŋa be la a West lamboriŋ a Accra poɔ, a zie be la zie naŋ ba taa gɔnne a leɛ gɛrɛ a Kwashieman-Ofankor sori zu sɛŋ.
== Faculties ==
A waana zenɛ bee a pampana ŋa a yuniveniti taa zannoo bɔgre parɛɛ bee ziiri anaare, ka a yoe la; Faculty of Engineering, Science and Computing (FESAC), Faculty of Business Administration (FBA), Pentecost School of Theology and Mission (PSTM) ane Faculty of Health and Allied Sciences (FHAS). A yuniveniti ŋa meŋ taa be o naŋ nyɛrɛ o sommo kponzie zaa a yire, a Pentecost University Graduate sakuuri (PUGS) ane College of Foundation and Professional Studies (COFOPS) so la ba menne ka karembie maŋ gaa te baare nyɛ bee a yi ne degree karatare a yi bone na o naŋ gaa te zanne.
== '''Professional programmes''' ==
A yuniveniti taa la zannoo yelzuri gyamaa banaŋ wulo karembiiri, yele anaŋ naŋ na soŋ karembirii ka ba pampana nyɔvore yɛlɛ ane teŋɛ zu yeltarre a kyɛnɛ soŋ.<ref>"College of Foundation and Professional Studies (COFOPS)".</ref>
A zannoo bɔgere ane zie COFOPS naŋ de wane ka a be o poɔŋ la
· Association of Business Executives (ABE)
· National Computing Centre Education (NCC Education)
· Chartered Institute of Marketing (CIM UK)
· Certificate in Theology & Church Administration
· Certificate in Alternative Conflict Resolution
· Certificate in Business Administration
· Certificate in Leadership and Governance in Health Systems Management
· Certificate in Holistic Early Child Care Development
· Chartered Institute of Logistics and Transport (CILT)
· BCS Approved Centre (Professional IT Training)
· Institute of Chartered Accountants Ghana (ICAG)
== Sakue anaŋ naŋ are teɛ o ==
Sakue gyamaa naŋ ŋmaa viiri a tendaazaa taa la sommo bee teɛbo a ko a Pentecost yuniveniti ŋa, ka a sakue na mine la, Saginaw Valley State University, USA; London South Bank University, Bucks New University, University of Salford and NCC Education, all in the UK.<ref>"Pentecost University signs MoU with Ghana Prisons Service to boost inmate rehabilitation and skills training - MyJoyOnline". ''www.myjoyonline.com''. 2026-04-16. Retrieved 2026-04-16.</ref>
== Nenzuri mine naŋ baare a sakuuri ŋa ==
· Kweku Frimpong, Ghanaian oil and insurance businessman
· Nana Akosua Konadu, CEO and television host
· Joe Mettle, award-winning Ghanaian gospel musician
· Jacinta Ocansey, pɔge kaŋa naŋ maala sinii
== Sommo Yizie ==
n7hp6k54yv8kqqlsrmr1xnqymms2661
62895
62894
2026-07-23T22:28:26Z
Eric Gangman
92
62895
wikitext
text/x-wiki
{{Databox|item=Q2069397}}
'''Pentecost University,''' e la meŋa soobo yuniveniti kaŋa naŋ be a Sowutuom, naŋ be a Greater Accra Irigiŋ a Ghana paaloŋ poɔ. Neɛ naŋ wane bee a piili a sakuuri ŋa la Church of Pentecost (COP) ane banaŋ ŋmaa viiri a Pentecost Bible College, a sakuuri ŋa yelwonaa bee tontnne zaa da la ka ba maŋ wuli noba ka ba baŋ naaŋmene yelbiri a yi COP yuori eŋɛ. A Borebo kyuu beri lezare ne ayi dare a 2003 yuoni poɔ, Ghana<ref>"President Akufo-Addo Presents Charters To Pentecost University And All Nations University". ''presidency.gov.gh''. 28 May 2020. Archived from the original on 2024-12-14. Retrieved 2020-07-05.</ref><ref>pentvars (2020-05-28). "PUC Receives Presidential Charter". ''Pentecost University''. Retrieved 2020-07-05.</ref><ref>Ashiadey, Bernard Yaw (2020-05-28). "Pentecost, All Nations universities receive presidential charters … set to award own degrees". ''Business Financial Times Online | Economy, World, Finances, IT, ICT, Business''. Retrieved 2020-07-05.</ref> paaloŋ zaa yidaadɔɔ J. A. Kufuor da gaa la a PUC naŋ da taa lammo kpoŋ kaŋa a Sowutuom sakuuri poɔ a te lanne ba. PUC kpaaroŋ lammo dɛndɛŋ soba da e la Borebo kyuu bebie ayoɔbo dare a 2004 yuoni poɔ. A yuoni na poɔ la ka a Pentecost University da nyɛ ba karatare a yi a gɔbenɛnte zie a nansaala naŋ maŋ boɔle ka “ National Accreditation Board (NAB) a ghana poɔ, ba da nyɛ la a karattera ŋa a Kakyɛ kyuu poɔ a 2004 yuoni poɔ, a wagere ŋa la ka ba da de a ba kogi zu soba a ko Nana Addo Dankwa Akufo-Addo, a borebo kyuu beri lezare ne anii dare a 2020 yuoni na poɔ, a wagere bee a yuoni ŋa poɔ ne o zu la ka o danaŋ e a Ghana<ref>Ashiadey, Bernard Yaw (2020-05-28). "Pentecost, All Nations universities receive presidential charters … set to award own degrees". ''Business Financial Times Online | Economy, World, Finances, IT, ICT, Business''. Retrieved 2020-07-05.</ref> paaloŋ zaa kogi zu soba (President of the Republic of Ghana.) A wagere ŋ poɔ banaŋ da nyɛ a Presidential Charter ŋa, a yuniveniti paaŋ da be la a Kwame Nkrumah University of Science and Technology, University of Cape Coast, ane University of Ghana nuuri poɔ. A doɔbo kyuu beri dɛndɛŋ soba dare a 2020 yuoni poɔ, a yuniveniti da ŋmɛ la daworo a ko gyamaa banaŋ kaa iri Rev. Prof. Kwabena Agyapong-Kodua, ka o are leɛre a Apostle Daniel Okyere Walker zu a e Vice-Chancellor danweɛŋ soba a yuniveniti meŋa naŋ kaa iri.<ref>pentvars (2020-06-01). "Pentecost University gets new Vice-Chancellor". ''Pentecost University''. Retrieved 2020-07-05.</ref>
A karembiiri naŋ be a sakuuri ŋa poɔ ta la 3000, kyɛ a karembiiri bama zaa da be la a be a zanna ka zaa a yi ne degree karatare.
Pentecost University bezie meŋa a Sowutuom poɔ la e a ka sakuuri meŋa, o ba maaleŋ be a Accra paaloŋ meŋa bee nyaa poɔ. Sowutuom ( o tɛgɛ bee pare “ taa bee nyɔge a fo malefa) a zie ŋa be la a West lamboriŋ a Accra poɔ, a zie be la zie naŋ ba taa gɔnne a leɛ gɛrɛ a Kwashieman-Ofankor sori zu sɛŋ.
== Faculties ==
A waana zenɛ bee a pampana ŋa a yuniveniti taa zannoo bɔgre parɛɛ bee ziiri anaare, ka a yoe la; Faculty of Engineering, Science and Computing (FESAC), Faculty of Business Administration (FBA), Pentecost School of Theology and Mission (PSTM) ane Faculty of Health and Allied Sciences (FHAS). A yuniveniti ŋa meŋ taa be o naŋ nyɛrɛ o sommo kponzie zaa a yire, a Pentecost University Graduate sakuuri (PUGS) ane College of Foundation and Professional Studies (COFOPS) so la ba menne ka karembie maŋ gaa te baare nyɛ bee a yi ne degree karatare a yi bone na o naŋ gaa te zanne.
== '''Professional programmes''' ==
A yuniveniti taa la zannoo yelzuri gyamaa banaŋ wulo karembiiri, yele anaŋ naŋ na soŋ karembirii ka ba pampana nyɔvore yɛlɛ ane teŋɛ zu yeltarre a kyɛnɛ soŋ.<ref>"College of Foundation and Professional Studies (COFOPS)".</ref>
A zannoo bɔgere ane zie COFOPS naŋ de wane ka a be o poɔŋ la
· Association of Business Executives (ABE)
· National Computing Centre Education (NCC Education)
· Chartered Institute of Marketing (CIM UK)
· Certificate in Theology & Church Administration
· Certificate in Alternative Conflict Resolution
· Certificate in Business Administration
· Certificate in Leadership and Governance in Health Systems Management
· Certificate in Holistic Early Child Care Development
· Chartered Institute of Logistics and Transport (CILT)
· BCS Approved Centre (Professional IT Training)
· Institute of Chartered Accountants Ghana (ICAG)
== Sakue anaŋ naŋ are teɛ o ==
Sakue gyamaa naŋ ŋmaa viiri a tendaazaa taa la sommo bee teɛbo a ko a Pentecost yuniveniti ŋa, ka a sakue na mine la, Saginaw Valley State University, USA; London South Bank University, Bucks New University, University of Salford and NCC Education, all in the UK.<ref>"Pentecost University signs MoU with Ghana Prisons Service to boost inmate rehabilitation and skills training - MyJoyOnline". ''www.myjoyonline.com''. 2026-04-16. Retrieved 2026-04-16.</ref>
== Nenzuri mine naŋ baare a sakuuri ŋa ==
· Kweku Frimpong, Ghanaian oil and insurance businessman
· Nana Akosua Konadu, CEO and television host
· Joe Mettle, award-winning Ghanaian gospel musician
· Jacinta Ocansey, pɔge kaŋa naŋ maala sinii
== Sommo Yizie ==
t57q759ij2y2pod76g8h50kdtorccs2
University of Mines and Technology
0
7335
62897
2026-07-24T11:44:42Z
Mary Loor
55
Created page with "A '''University''' '''ko Mines ane Technology''' (UMaT) e gɔbenɛnte sakuuri naŋ be Tarkwa a Western Region Ghana poɔ."
62897
wikitext
text/x-wiki
A '''University''' '''ko Mines ane Technology''' (UMaT) e gɔbenɛnte sakuuri naŋ be Tarkwa a Western Region Ghana poɔ.
hbr5r5f060ah6m4vtjhmea0pgevmlei