Modul:Table row counter
Quelle w:Module:Table row counter, zu Parametern, siehe w:Template:Table row counter
Quelle w:Module:Table row counter, zu Parametern, siehe w:Template:Table row counter
Verwendung ohne Parameter
{{#invoke:table row counter|main}}
Beispiel mit Parameter
| Column 1 | Column 2 |
|---|---|
| Cell 1 | Cell 2 |
| Cell 3 | Cell 4 |
| Cell 5 | Cell 6 |
- Code
- {{#invoke:table row counter|main|id=foo|page=Modul:Table row counter/Doku}}
- Resultat
- 3
Beispiel 2
- Code
- {{#invoke:table row counter|main|kopf=Denkmalliste Schweiz Tabellenkopf|fuss=Denkmalliste Schweiz Tabellenfuss|zeile=Denkmalliste Schweiz Tabellenzeile|page=Vorlage:Denkmalliste Schweiz Tabellenzeile/Doku}}
- Resultat
- 1
-- Original bei https://en.wikipedia.org/wiki/Module:Table_row_counter Parameter kopf, fuss, zeile hinzugefügt
-- Verwendung: {{#invoke:table row counter|main}}
-- Zweck: zählt Zeilen einer Tabelle
-- This module counts table rows in wikitext.
local p = {}
local getArgs
function p.main(frame)
if not getArgs then
getArgs = require('Modul:Arguments').getArgs
end
return p._main(getArgs(frame, {wrappers = 'Vorlage:Table row counter'}))
end
function p._main(args)
-- Get the title object.
local titleObj
do
local success
success, titleObj = pcall(mw.title.new, args.page)
if not success or not titleObj then
titleObj = mw.title.getCurrentTitle()
end
end
-- Get the page content.
local content = titleObj:getContent()
if not content then
return nil
end
-- Find the wikitables on that page.
local wikitables = {}
do
local iWikitable = 0
if args.fuss then
args.fuss = args.fuss:gsub('%-' , "%%-")
args.fuss = "{{" .. args.fuss
else
args.fuss = "\n|}"
end
if args.kopf then
args.kopf = args.kopf:gsub('%-' , "%%-")
local s1 = content:match('^({{' .. args.kopf .. '.-' .. args.fuss .. ')')
else
local s1 = content:match('^({|.-\n|})')
end
if s1 then
iWikitable = iWikitable + 1
wikitables[iWikitable] = s1
end
if args.kopf then
for s in content:gmatch('({{' .. args.kopf .. '.-' .. args.fuss .. ')') do
iWikitable = iWikitable + 1
wikitables[iWikitable] = s
end
else
for s in content:gmatch('\n({|.-\n|})') do
iWikitable = iWikitable + 1
wikitables[iWikitable] = s
end
end
end
-- Find the wikitable to work on.
local wikitable
if args.id then
for i, s in ipairs(wikitables) do
if s:match('^{|[^\n]*id *= *" *(%w+) *"') == args.id then
wikitable = s
break
end
end
else
wikitable = wikitables[tonumber(args.tableno) or 1]
end
if not wikitable then
return nil
end
-- Count the number of rows.
local count
if args.zeile then
args.zeile = args.zeile:gsub('%-' , "%%-")
do
local temp
temp, count = wikitable:gsub('{{' .. args.zeile, "")
end
count = count - (tonumber(args.ignore) or 0)
else
do
local temp
temp, count = wikitable:gsub('\n|%-', '\n|-')
end
-- Control for missing row markers at the start.
if not wikitable:find('^{|[^\n]*%s*\n|%-') then
count = count + 1
end
-- Control for extra row markers at the end.
if wikitable:find('\n|%-[^\n]-%s*\n|}$') then
count = count - 1
end
-- Subtract the number of rows to ignore, or the number of header
-- rows if it's empty, and make sure the result isn't below zero.
local headers
do
local temp
temp, headers = wikitable:gsub('\n|%-\n!', '\n|-\n!')
end
if not wikitable:find('^{|[^\n]*%s*\n|%-\n!') then
headers = headers + 1
end
count = count - (tonumber(args.ignore) or headers)
end
if count < 0 then
count = 0
end
return count
end
return p
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.