본문으로 이동

모듈:R/data

위키낱말사전, 말과 글의 누리

이 문서의 설명문서는 모듈:R/data/설명문서에서 편집할 수 있습니다.

{
}

local langcode = "ko"

local ugsub = mw.ustring.gsub

local identifiers = {}

function format_data (value) -- value의 문자열을 %s에 삽입합니다.
	return (ugsub(value, "id[%s_]+", "_")) 
end

local R = require("모듈:R")

for parameters in mw.title.new("부록:참고문헌 자동 추가 리스트/" .. langcode .. "/초안"):getContent():gmatch("{{reference section|([^}]+)}}") do -- 해석하자면, '(' 이런 괄호 안에 있는 내용을 캐칭하겠다는 겁니다
	local data = {}
	local identifier, subtitle, year, volume, ISBN, edition, author, publisher, proofreader
	local title
	
	for v in parameters:gmatch("[^|]+") do
		identifier = v:match("^%s*식별자%s*=%s*(%S+)") -- 별*은 다양한 형식의 공백을 처리할 수 있습니다. ex) 식별자=든 식별자 =든 식별자   =든 등등
		title = v:match("^%s*제목%s*=%s*(%S+)")
		subtitle = v:match("^%s*논문제목%s*=%s*(%S+)")
		year = v:match("^%s*연도%s*=%s*(%S+)")
		volume = v:match("^%s*권%s*=%s*(%S+)")
		ISBN = v:match("^%s*ISBN%s*=%s*(%S+)")
		edition = v:match("^%s*판%s*=%s*(%S+)")
		author = v:match("^%s*편찬%s*=%s*(%S+)")
		publisher = v:match("^%s*출판사%s*=%s*(%S+)")
		proofreader = v:match("^%s*감수%s*=%s*(%S+)")
		
		if key and value then
			key = key:lower():gsub("%s+", "_")
			value = value:match("^%s*(.-)%s*$")
			data[key] = value
		end
		identifiers[format_data(v)] = "{ title = "..title.." }"
	end
	if data.identifier then 
		identifier = data.identifier
		data.identifier = nil
		refSect[identifier] = data
	end
end

return identifiers