Blaze7451/Wiki-ko-20250601 huggingface dataset:
루카: 더 비기닝

《루카: 더 비기닝》은 2021년 2월 1일부터 2021년 3월 9일까지 방송된 tvN 월화 드라마이다.

**기획의도**
특별한 능력 때문에 쫓기게 된 '지오'가 유일하게 그의 모습을 기억하는 강력반 형사 '구름'과 함께 거대한 음모에 맞서는 스펙터클 추격 액션극

**제작진**

**제작 ===  - 스튜디오드래곤- 테이크원컴퍼니- 에이치하우스

**연출**
 김홍선 : 영화 《역모: 반란의 시대》(감독), MBC 주말 특별 기획 드라마 《불꽃놀이》(공동 연출), SBS 월화 드라마 《사랑하는 사람아》(공동 연출), SBS 시트콤 《달려라 고등어》(조연출), OCN Thrills 《도시괴담 데자뷰 시즌 2》(연출), OCN 《메디컬 기방 영화관》(연출), OCN 《조선추리활극 정약용》(연출), OCN 《야차》(연출), SBS 월화 드라마 《무사 백동수》(공동 연출), OCN 《히어로》(공동연출), tvN 월화 드라마 《라이어 게임》(연출), tvN 월화 드라마 《피리부는 사나이》(연출), OCN 《보이스》(연출), OCN 《블랙》(연출), OCN 《손 the Guest》(연출) 연출

**극본**
 천성일 : 영화 《패자부활전》(음악), 영화 《격투기 고등학교》(각본), 영화 《원스 어폰 어 타임》(각본), 영화 《7급 공무원》(각본/단역-택시기사 역), 영화 《아빠가 여자를 좋아해》(각본/제작), 영화 《5백만불의 사나이》(각본/기획/제작), 영화 《해적: 바다로 간 산적》(각본), 영화《소수의견》(제작/각색/기획), 영화 《서부전선》(감독/각본/기획), 영화 《해적 Part Ⅱ: 도깨비 깃발》(각본/기획/제작), KBS 2TV 수목 드라마 《추노》(집필), KBS 2TV 수목 드라마 《도망자 플랜 B》(집필), MBC 수목 드라마 《7급 공무원》(집필), JTBC 금토 드라마 《더 패키지》(각본), SBS 수목 드라마 《친애하는 판사님께》(집필), KBS 2TV 수목 드라마 《폴리스 아카데미》(공동 집필) 집필

**등장 인물**

**주요 인물**
 김래원 : 지오 역 (아역 : 오한결) - 세상을 뒤바꿀 능력을 숨긴 채 쫓기게 된 남자. 뭔가 큰 사고가 일어난 것 같은 풍경 속에서 깨어나 보면 자신이 누군지, 왜 여기 있는지, 자신에게 도대체 무슨 일이 일어났는지 전혀 기억하지 못한다. 어느 집에 갔던 것, 뭔가를 쓰고 있는 남자의 손, 그리고 연기 가득한 건물이 지오에게 남은 유일한 기억이다. 그리고, 그 기억의 대부분을 지배하는 것은 '버림받았다'는 외로움. 구름의 남편.- 이다희 : 하늘에구름 / 이설란 역 (아역 : 서은솔) - 지오의 기억 속에 살아있는 단 하나의 그녀. 중대 범죄수사과 출신으로 상사의 비리를 조사하다 강력계로 전출 된 형사. 어릴 적 부모님은 어떤 아이와 함께 집을 나간 후 실종됐다. 사건인지 사고인지, 자기를 버리고 간 것인지, 그 아이는 누구였는지도 모른 채 성인이 되었다. 그리고 형사가 된 후에도 끈질기게 부모님의 행방을 쫓고 있다. 지오의 아내.- 김성오 : 이손 역 - 짐승 같은 본능으로 지오를 쫓는 남자. 특수부대 출신 공작원. 대테러 훈련 도중 수류탄을 섬광탄으로 오인하여 투척, 9명을 죽였다. 교도소에 수감된 채 죽지 못해 살아 있던 그를 찾아온 김철수는 거부할 수 없는 제안을 하고, 그렇게 이손은 김철수의 공작원이 되었다. 그는 누굴 죽여도 그것은 모두 조국을 위한 일이라 믿는다. 지오를 추격하는 것 역시 애국의 길이기 때문이다.

**L.U.C.A. 프로젝트**
 박혁권 : 김철수 역 - L.U.C.A. 프로젝트를 진행해온 국정원 숨은 실세- 안내상 : 류중권 역 - L.U.C.A. 프로젝트를 유일하게 성공시킨 과학자. 휴먼테크 연구소장- 진경 : 황정아 역 - L.U.C.A. 프로젝트로 세상을 발 밑에 두려는 야심가. 증조부 때부터 이어져 내려오는 교단의 영주로 의천성당의 운영자. 휴먼테크 연구소 설립자

**주안지방경찰청 강력1팀 사람들**
 김상호 : 최진환 역 - 팀장, 구름의 사수. 범인 한 놈 더 잡는 거 보다 안 다치는 게 더 중요하다는 속정 깊은 형사다.- 황재열 : 김유철 역 - 팀원, 구름의 선배. 지오를 둘러싼 사건을 집요하게 추적하는 구름이 위험해질까 걱정하면서도 끝까지 도와주려고 하는 든든한 조력자이다.- 한규원 : 김진수 역 - 팀원

**지오의 주변 인물**
 안창환 : 원이 역 - 지오의 친구. 지오가 여러 번 기억을 모두 잃어버렸다는 것도 특별한 능력을 가지고 있다는 것도 알고 있는 유일한 친구이다- 이원종 : 김만식 역 - 의료폐기물 수거업체 다경자원 주임 (특별출연)

**하늘에구름의 주변 인물**
 김형민 : 하영재 역 - 하늘에구름의 아버지, 휴먼테크 연구소 초대 설립자이자 L.U.C.A.프로젝트 공동연구자- 이해영 : 오종환 역 - 국과수 교수, 구름의 조력자. 대학시절 류중권과 절친한 사이였으나 류중권이 과학자로서 넘어선 안 될 선을 넘자 그를 과학계에서 퇴출하는 데 앞장섰다.

**이손의 주변 인물**
 정다은 : 유나 역 - 이손의 특수팀 팀원. 훈련 중 총기 오발 사고로 5명을 죽였다. 본인 역시 그 사고로 한 쪽 다리를 잃고 실의에 빠져있을 때 김철수에게 발탁된다.- 김민귀 : 태오 역 - 이손의 특수팀 팀원. 자유분방해 보이지만 자신이 속한 조직에 대한 충성심은 누구보다 강하다.- 이중옥 : 김황식 역 - 이손의 특수팀 팀원. 비리 사건으로 불명예 제대 후 김철수의 공작원으로 합류했다.

**그 외**
 이용녀 : 스텔라 역 - 지오가 발견된 의천성당(보육원)의 수녀- 정은채 : 정 실장 역 - 국정원 감찰반 실장, 항체를 빌미로 황정아와 손을 잡았다. (특별출연)- 미상 : 구름과 지오의 딸, 인류의 열쇠를 손에 쥔 인물, 인간이 아니다.(지오와 같이 전기 능력을 쓸 수 있다.)

**시청률**

**같이 보기**
 대한민국의 텔레비전 드라마 목록 (ㄹ)- 2021년 대한민국의 텔레비전 드라마 목록

**참고사항**
 김성오, 천성일 작가는 tvN 월화 드라마 《루카》, 영화 《해적 Part Ⅱ: 도깨비 깃발》에 이어서 다시 한번 호흡을 맞추는 계기가 되었다.

**각주**

**외부 링크**
  루카: 더 비기닝 공식사이트
분류:2021년 드라마
분류:2020년대 대한민국의 텔레비전 프로그램
분류:대한민국의 액션 드라마
분류:2021년에 시작한 대한민국 TV 프로그램
분류:2021년에 종료한 대한민국 TV 프로그램
분류:tvN 월화드라마
PROJECT SCARD

PROJECT SCARD(프로젝트 스카드)는 프론티어 워크스에 의한 미디어 믹스 작품이다.
드라마CD나 캐릭터송, 성우에 의한 인터넷 전달 프로그램, 텔레비전 애니메이션을 전개하는 프로젝트다.
나라의 경제특구 예정지인 도쿄의 아카츠키특구를 무대로 하여, 디바인 타투라고 불리는 신수의 힘을 가진 인간의 스카드의 활약이 그려진다.

**외부 링크**
  「PROJECT SCARD」 공식 사이트- 「PROJECT SCARD」 공식- bookcafeTITAN【公式】
분류:미디어 프랜차이즈 
분류:드라마 CD
분류:도쿄도를 배경으로 한 작품
마이 리틀 포니: 이퀘스트리아 걸스 스페셜

마이 리틀 포니: 이퀘스트리아 걸스 스페셜(My Little Pony: Equestria Girls (2017 television specials)(또는 넷플릭스에서 마이 리틀 포니: 이퀘스트리아 걸스 캔털롯 고등학교이야기)는 미국과 캐나다의 플래시 애니메이션 TV 스페셜 시리즈이다.

**목소리 출연**
 박지윤: 트와일라잇 스파클/사이트와이 역- 은영선: 선셋 쉬머, 레몬 제스트, 사워 스위트 역- 리영란: 스파이크, 주니퍼 몽타주, 슈가코트, 써니 플레어 역- 김율: 애플잭 역- 여민정: 래리티 역- 조현정: 레인보우 대쉬 역- 조경이: 핑키 파이, 체스트넛 마그니피코 역- 박소라: 플러터샤이 역- 소연: 스타라이트 글리머 역

**스페셜 목록**
 1. 댄스 매직 (Dance Magic)- 2. 무비 매직 (Movie Magic)- 3. 미러 매직 (Mirror Magic)
분류:마이 리틀 포니: 이퀘스트리아 걸스
분류:2017년 애니메이션
분류:플래시 애니메이션
분류:2017년에 시작한 TV 프로그램
분류:DHX 미디어의 텔레비전 프로그램
분류:미국의 텔레비전 애니메이션
분류:2017년에 종료한 TV 프로그램
모듈:I18n

local p = {}
-- Credit to http://stackoverflow.com/a/1283608/2644759
-- cc-by-sa 3.0
local function tableMerge(t1, t2, overwrite)
	for k,v in pairs(t2) do
		if type(v) == "table" and type(t1k) == "table" then
			-- since type(t1k) == type(v) == "table", so t1k and v is true
			tableMerge(t1k, v, overwrite) -- t2k == v
		else
			if overwrite or t1k == nil then t1k = v end
		end
	end
	return t1
end
function p.loadI18n(name, i18n_arg)
	local exist, res = pcall(require, name)
	if exist and next(res) ~= nil then
		if i18n_arg then
			tableMerge(i18n_arg, res.i18n, true)
		elseif type(i18n) == "table" then
			-- merge to global i18n
			tableMerge(i18n, res.i18n, true)
		end
	end
end
function p.loadI18nFrame(frame, i18n_arg)
	p.loadI18n(frame:getTitle().."/i18n", i18n_arg)
end
return p
모듈:Language/data/ISO 639-3/make

require('strict');
local p = {};
--=---------------------------------------------------------------------
Reads a local copy of iso-639-3_Name_Index_YYYYMMDD.tab where (YYYYMMDD is the release date).  Download that file
in zip form from http://www-01.sil.org/iso639-3/download.asp (use the UTF-8 zip)
useful lines in the file have the form:
	\t\t\n
where:
	 is the three-character ISO 639-3 language code
	 is the language 'name'
	 is the language in  'last-name, first-name(s)' form; this part ignored
	
	like this:
		aaq	Eastern Abnaki	Abnaki, Eastern
when a language code has more than one name, the code is repeated for each additional name:
	rar	Cook Islands Maori	Maori, Cook Islands
	rar	Rarotongan	Rarotongan
**
function p.ISO_639_3_extract (frame)
	local page = mw.title.getCurrentTitle();									-- get a page object for this page
	local content = page:getContent();											-- get unparsed content
	local lang_table = {};														-- languages go here
	local code;
	local names;
	local file_date = 'File-Date: ' .. frame.args"file-date";									-- set the file date line from |file-date=
	for code, name in mw.ustring.gmatch (content, '%f%a(%a%a%a)\t(^\t+)\t^\n+\n') do		-- get code and 'forward' name
		if code then
			if string.find (lang_table#lang_table or , '^%\"' .. code) then				-- if this is an additional name for code ('or' empty string for first time when lang_table#lang_table is nil)
				lang_table#lang_table = mw.ustring.gsub (lang_table#lang_table, '}$', );	-- remove trailing brace from previous name
				lang_table#lang_table = lang_table#lang_table .. ', \"' .. name .. '\"}';	-- add this name with new brace 
			else
				table.insert (lang_table, "\"" .. code .. "\" = {\"" .. name .. "\"}");		-- make new table entry
			end
		elseif not code then
			table.insert (lang_table, "\"error\" = {" .. record .. "}");						-- code should never be nil, but inserting an error entry in the final output can be helpful
		end
	end
																				-- make pretty output
	return "-- " .. file_date .. "return {	" .. table.concat (lang_table, ',	') .. "	}" .. "";
end
return p;
모듈:Language/name/data

-- put tables and their tables together
local function __coalesce(...)
local coalesced = {}
for _, langslist in ipairs{...} do
for langcode, langnames in pairs(langslist) do
for _, langname in pairs(langnames) do
if not coalescedlangcode then
coalescedlangcode = {}
end
table.insert(coalescedlangcode, langname)
end
end
end

return coalesced
end
-- make the keys lowercase
local function __preprocess(t, first_of_array_in_array)
local preprocessed = {}
if first_of_array_in_array then
	-- keep only the 1st language name for each code, excluding synonyms
for k, v in pairs(t) do
preprocessedk:lower() = {v1}
end
else
for k, v in pairs(t) do
preprocessedk:lower() = v
end
end
return preprocessed
end
-- all valid primary language subtags for BCP47 from IANA (most of them from ISO 639-1, -2 and -3 with some exclusions)
local __iana_languages = __preprocess(require("Module:Language/data/iana languages"));
-- ISO 639-3 contains additional 3-letter codes not inserted in the IANA database as they are aliased to 2-letter codes,
-- but excludes some deleted codes still valid in BCP47 (some of them are aliased)
local __iso_639_3      = __preprocess(require("Module:Language/data/ISO 639-3"));
-- Wikimedia wikis uses some non-standard codes and a subset of IANA codes, plus composite codes
local __wp_languages   = __preprocess(require("Module:Language/data/wp languages"), true);
-- all valid script subtags for BCP47 from IANA (excluding special ISO 15924 codes)
local iana_scripts     = __preprocess(require("Module:Language/data/iana scripts"));
-- all valid region subtags for BCP47 from IANA (derived from ISO 3166-1 excluding special codes, and from 3-digit UN M.49 codes for groups of countries)
local iana_regions     = __preprocess(require("Module:Language/data/iana regions"));
-- variant subtags from IANA; table format differs from the other IANA data tables
local iana_variants = __preprocess(require("Module:Language/data/iana variants"));
-- suppressed script subtags from IANA;
local iana_suppressed_scripts = __preprocess (require("Module:Language/data/iana suppressed scripts"));
return {
lang   = __coalesce(__wp_languages, __iana_languages, __iso_639_3),
lang_iana = __iana_languages,
script = iana_scripts,
region = iana_regions,
variant = iana_variants,
suppressed = iana_suppressed_scripts,
}
모듈:Lang/ISO 639 synonyms

-- File-Date: 2013-01-11
return {
	"aar" = "aa",
	"abk" = "ab",
	"afr" = "af",
	"aka" = "ak",
	"amh" = "am",
	"ara" = "ar",
	"arg" = "an",
	"asm" = "as",
	"ava" = "av",
	"ave" = "ae",
	"aym" = "ay",
	"aze" = "az",
	"bak" = "ba",
	"bam" = "bm",
	"bel" = "be",
	"ben" = "bn",
	"bih" = "bh",
	"bis" = "bi",
	"bod" = "bo",
	"bos" = "bs",
	"bre" = "br",
	"bul" = "bg",
	"cat" = "ca",
	"ces" = "cs",
	"cha" = "ch",
	"che" = "ce",
	"chu" = "cu",
	"chv" = "cv",
	"cor" = "kw",
	"cos" = "co",
	"cre" = "cr",
	"cym" = "cy",
	"dan" = "da",
	"deu" = "de",
	"div" = "dv",
	"dzo" = "dz",
	"ell" = "el",
	"eng" = "en",
	"epo" = "eo",
	"est" = "et",
	"eus" = "eu",
	"ewe" = "ee",
	"fao" = "fo",
	"fas" = "fa",
	"fij" = "fj",
	"fin" = "fi",
	"fra" = "fr",
	"fry" = "fy",
	"ful" = "ff",
	"gla" = "gd",
	"gle" = "ga",
	"glg" = "gl",
	"glv" = "gv",
	"grn" = "gn",
	"guj" = "gu",
	"hat" = "ht",
	"hau" = "ha",
	"heb" = "he",
	"her" = "hz",
	"hin" = "hi",
	"hmo" = "ho",
	"hrv" = "hr",
	"hun" = "hu",
	"hye" = "hy",
	"ibo" = "ig",
	"ido" = "io",
	"iii" = "ii",
	"iku" = "iu",
	"ile" = "ie",
	"ina" = "ia",
	"ind" = "id",
	"ipk" = "ik",
	"isl" = "is",
	"ita" = "it",
	"jav" = "jv",
	"jpn" = "ja",
	"kal" = "kl",
	"kan" = "kn",
	"kas" = "ks",
	"kat" = "ka",
	"kau" = "kr",
	"kaz" = "kk",
	"khm" = "km",
	"kik" = "ki",
	"kin" = "rw",
	"kir" = "ky",
	"kom" = "kv",
	"kon" = "kg",
	"kor" = "ko",
	"kua" = "kj",
	"kur" = "ku",
	"lao" = "lo",
	"lat" = "la",
	"lav" = "lv",
	"lim" = "li",
	"lin" = "ln",
	"lit" = "lt",
	"ltz" = "lb",
	"lub" = "lu",
	"lug" = "lg",
	"mah" = "mh",
	"mal" = "ml",
	"mar" = "mr",
	"mkd" = "mk",
	"mlg" = "mg",
	"mlt" = "mt",
	"mon" = "mn",
	"mri" = "mi",
	"msa" = "ms",
	"mya" = "my",
	"nau" = "na",
	"nav" = "nv",
	"nbl" = "nr",
	"nde" = "nd",
	"ndo" = "ng",
	"nep" = "ne",
	"nld" = "nl",
	"nno" = "nn",
	"nob" = "nb",
	"nor" = "no",
	"nya" = "ny",
	"oci" = "oc",
	"oji" = "oj",
	"ori" = "or",
	"orm" = "om",
	"oss" = "os",
	"pan" = "pa",
	"pli" = "pi",
	"pol" = "pl",
	"por" = "pt",
	"pus" = "ps",
	"que" = "qu",
	"roh" = "rm",
	"ron" = "ro",
	"run" = "rn",
	"rus" = "ru",
	"sag" = "sg",
	"san" = "sa",
	"sin" = "si",
	"slk" = "sk",
	"slv" = "sl",
	"sme" = "se",
	"smo" = "sm",
	"sna" = "sn",
	"snd" = "sd",
	"som" = "so",
	"sot" = "st",
	"spa" = "es",
	"sqi" = "sq",
	"srd" = "sc",
	"srp" = "sr",
	"ssw" = "ss",
	"sun" = "su",
	"swa" = "sw",
	"swe" = "sv",
	"tah" = "ty",
	"tam" = "ta",
	"tat" = "tt",
	"tel" = "te",
	"tgk" = "tg",
	"tgl" = "tl",
	"tha" = "th",
	"tir" = "ti",
	"ton" = "to",
	"tsn" = "tn",
	"tso" = "ts",
	"tuk" = "tk",
	"tur" = "tr",
	"twi" = "tw",
	"uig" = "ug",
	"ukr" = "uk",
	"urd" = "ur",
	"uzb" = "uz",
	"ven" = "ve",
	"vie" = "vi",
	"vol" = "vo",
	"wln" = "wa",
	"wol" = "wo",
	"xho" = "xh",
	"yid" = "yi",
	"yor" = "yo",
	"zha" = "za",
	"zho" = "zh",
	"zul" = "zu"
	}
모듈:Lang/data/iana suppressed scripts

-- File-Date: 2025-01-21
return {
	"Arab" = {"ar", "fa", "ps", "ur"},
	"Armn" = {"hy"},
	"Beng" = {"as", "bn"},
	"Blis" = {"zbl"},
	"Cyrl" = {"ab", "be", "bg", "kk", "mk", "ru", "uk"},
	"Deva" = {"hi", "mr", "ne", "kok", "mai"},
	"Ethi" = {"am", "ti"},
	"Geor" = {"ka"},
	"Grek" = {"el"},
	"Gujr" = {"gu"},
	"Guru" = {"pa"},
	"Hebr" = {"he", "iw", "yi"},
	"Jpan" = {"ja"},
	"Khmr" = {"km"},
	"Knda" = {"kn"},
	"Kore" = {"ko"},
	"Laoo" = {"lo"},
	"Latn" = {"af", "ay", "bs", "ca", "ch", "cs", "cy", "da", "de", "en", "eo",
				"es", "et", "eu", "fi", "fj", "fo", "fr", "fy", "ga", "gl", "gn",
				"gv", "hr", "ht", "hu", "id", "in", "is", "it", "kl", "la", "lb",
				"ln", "lt", "lv", "mg", "mh", "mo", "ms", "mt", "na", "nb", "nd",
				"nl", "nn", "no", "nr", "ny", "om", "pl", "pt", "qu", "rm", "rn",
				"ro", "rw", "sg", "sk", "sl", "sm", "so", "sq", "ss", "st", "sv",
				"sw", "tl", "tn", "to", "tr", "ts", "ve", "vi", "xh", "zu", "dsb",
				"frr", "frs", "gsw", "hsb", "men", "nds", "niu", "nso", "tem", "tkl", "tmh",
				"tpi", "tvl"},
	"Mlym" = {"ml"},
	"Mymr" = {"my"},
	"Nkoo" = {"nqo"},
	"Orya" = {"or"},
	"Sinh" = {"si"},
	"Taml" = {"ta"},
	"Telu" = {"te"},
	"Thaa" = {"dv"},
	"Thai" = {"th"},
	"Tibt" = {"dz"}
	}
모듈:Unicode data/Hangul

-- Data used to generate the names of characters in the Hangul Syllables block
-- (U+AC00 to U+D7A3).
local Hangul = {}
-- The following leads, vowels, and trails come from here:
-- http://www.unicode.org/Public/UNIDATA/Jamo.txt
Hangul.leads = {
	0 = "G", "GG", "N", "D", "DD", "R", "M", "B", "BB", "S", "SS",
	"", "J", "JJ", "C", "K", "T", "P", "H"
}
-- not actually used:
Hangul.lead_count = #Hangul.leads + 1
Hangul.vowels = {
	0 = "A", "AE", "YA", "YAE", "EO", "E", "YEO", "YE", "O", "WA",
	"WAE", "OE", "YO", "U", "WEO", "WE", "WI", "YU", "EU", "YI",
	"I"
}
Hangul.vowel_count = #Hangul.vowels + 1
Hangul.trails = {
	0 = "", "G", "GG", "GS", "N", "NJ", "NH", "D", "L", "LG", "LM", "LB",
	"LS", "LT", "LP", "LH", "M", "B", "BS", "S", "SS", "NG", "J", "C", "K",
	"T", "P", "H"
}
Hangul.trail_count = #Hangul.trails + 1
--For the term "final", see Syllable#Chinese model.
Hangul.final_count = Hangul.vowel_count * Hangul.trail_count
return Hangul
모듈:Unicode data/names/004

return {
	 0x4DC0  = "HEXAGRAM FOR THE CREATIVE HEAVEN",
	 0x4DC1  = "HEXAGRAM FOR THE RECEPTIVE EARTH",
	 0x4DC2  = "HEXAGRAM FOR DIFFICULTY AT THE BEGINNING",
	 0x4DC3  = "HEXAGRAM FOR YOUTHFUL FOLLY",
	 0x4DC4  = "HEXAGRAM FOR WAITING",
	 0x4DC5  = "HEXAGRAM FOR CONFLICT",
	 0x4DC6  = "HEXAGRAM FOR THE ARMY",
	 0x4DC7  = "HEXAGRAM FOR HOLDING TOGETHER",
	 0x4DC8  = "HEXAGRAM FOR SMALL TAMING",
	 0x4DC9  = "HEXAGRAM FOR TREADING",
	 0x4DCA  = "HEXAGRAM FOR PEACE",
	 0x4DCB  = "HEXAGRAM FOR STANDSTILL",
	 0x4DCC  = "HEXAGRAM FOR FELLOWSHIP",
	 0x4DCD  = "HEXAGRAM FOR GREAT POSSESSION",
	 0x4DCE  = "HEXAGRAM FOR MODESTY",
	 0x4DCF  = "HEXAGRAM FOR ENTHUSIASM",
	 0x4DD0  = "HEXAGRAM FOR FOLLOWING",
	 0x4DD1  = "HEXAGRAM FOR WORK ON THE DECAYED",
	 0x4DD2  = "HEXAGRAM FOR APPROACH",
	 0x4DD3  = "HEXAGRAM FOR CONTEMPLATION",
	 0x4DD4  = "HEXAGRAM FOR BITING THROUGH",
	 0x4DD5  = "HEXAGRAM FOR GRACE",
	 0x4DD6  = "HEXAGRAM FOR SPLITTING APART",
	 0x4DD7  = "HEXAGRAM FOR RETURN",
	 0x4DD8  = "HEXAGRAM FOR INNOCENCE",
	 0x4DD9  = "HEXAGRAM FOR GREAT TAMING",
	 0x4DDA  = "HEXAGRAM FOR MOUTH CORNERS",
	 0x4DDB  = "HEXAGRAM FOR GREAT PREPONDERANCE",
	 0x4DDC  = "HEXAGRAM FOR THE ABYSMAL WATER",
	 0x4DDD  = "HEXAGRAM FOR THE CLINGING FIRE",
	 0x4DDE  = "HEXAGRAM FOR INFLUENCE",
	 0x4DDF  = "HEXAGRAM FOR DURATION",
	 0x4DE0  = "HEXAGRAM FOR RETREAT",
	 0x4DE1  = "HEXAGRAM FOR GREAT POWER",
	 0x4DE2  = "HEXAGRAM FOR PROGRESS",
	 0x4DE3  = "HEXAGRAM FOR DARKENING OF THE LIGHT",
	 0x4DE4  = "HEXAGRAM FOR THE FAMILY",
	 0x4DE5  = "HEXAGRAM FOR OPPOSITION",
	 0x4DE6  = "HEXAGRAM FOR OBSTRUCTION",
	 0x4DE7  = "HEXAGRAM FOR DELIVERANCE",
	 0x4DE8  = "HEXAGRAM FOR DECREASE",
	 0x4DE9  = "HEXAGRAM FOR INCREASE",
	 0x4DEA  = "HEXAGRAM FOR BREAKTHROUGH",
	 0x4DEB  = "HEXAGRAM FOR COMING TO MEET",
	 0x4DEC  = "HEXAGRAM FOR GATHERING TOGETHER",
	 0x4DED  = "HEXAGRAM FOR PUSHING UPWARD",
	 0x4DEE  = "HEXAGRAM FOR OPPRESSION",
	 0x4DEF  = "HEXAGRAM FOR THE WELL",
	 0x4DF0  = "HEXAGRAM FOR REVOLUTION",
	 0x4DF1  = "HEXAGRAM FOR THE CAULDRON",
	 0x4DF2  = "HEXAGRAM FOR THE AROUSING THUNDER",
	 0x4DF3  = "HEXAGRAM FOR THE KEEPING STILL MOUNTAIN",
	 0x4DF4  = "HEXAGRAM FOR DEVELOPMENT",
	 0x4DF5  = "HEXAGRAM FOR THE MARRYING MAIDEN",
	 0x4DF6  = "HEXAGRAM FOR ABUNDANCE",
	 0x4DF7  = "HEXAGRAM FOR THE WANDERER",
	 0x4DF8  = "HEXAGRAM FOR THE GENTLE WIND",
	 0x4DF9  = "HEXAGRAM FOR THE JOYOUS LAKE",
	 0x4DFA  = "HEXAGRAM FOR DISPERSION",
	 0x4DFB  = "HEXAGRAM FOR LIMITATION",
	 0x4DFC  = "HEXAGRAM FOR INNER TRUTH",
	 0x4DFD  = "HEXAGRAM FOR SMALL PREPONDERANCE",
	 0x4DFE  = "HEXAGRAM FOR AFTER COMPLETION",
	 0x4DFF  = "HEXAGRAM FOR BEFORE COMPLETION",
}
모듈:Unicode data/category/make

local p = {}
local function read_page(title)
	return mw.title.new(title):getContent()
end
function p.make_singles_and_ranges(derived_general_category_page, property_value_aliases_page)
	local text = read_page(derived_general_category_page)
	
	local singles, ranges = {}, {}
	for code_point1, code_point2, general_category in text:gmatch "%f^\n%z(%x+)%.?%.?(%x*)%s*;%s*(%u%l)" do
		if general_category ~= "Cn" then
			code_point1 = tonumber(code_point1, 16)
			
			-- XXXX..XXXX ; gc
			if code_point2 ~= "" then
				code_point2 = tonumber(code_point2, 16)
				table.insert(ranges, { code_point1, code_point2, general_category })
			
			-- XXXX ; gc
			else
				singlescode_point1 = general_category
			end
		end
	end
	
	local property_value_aliases = read_page(property_value_aliases_page)
	local general_category_aliases = property_value_aliases:match "# General_Category^\n+%s*(.-)%s*%f^\n#"
	local long_names = {}
	for abbr, long_name in general_category_aliases:gmatch "gc%s*;%s*(%S+)%s*;%s*(%a_+)" do
		long_namesabbr = long_name
	end
	
	return singles, ranges, long_names
end
function p.print_data(data)
	local output = require "Module:array"()
	local function writef(...)
		output:insert(string.format(...))
	end
	
	writef 
return {
	singles = {
	
	-- Check that maximum "singles" codepoint is less than 0x100000?
	for codepoint, category in require "Module:TableTools".sortedPairs(data.singles) do
		writef('\t\t0x%05X = "%s",\n', codepoint, category)
	end
	
	writef 
	},
	ranges = {
	
	local function compare_ranges(range1, range2)
		return range11 < range21
	end
	
	table.sort(data.ranges, compare_ranges)
	for _, range in ipairs(data.ranges) do
		writef('\t\t{ 0x%06X, 0x%06X, "%s" },\n', unpack(range))
	end
	
	writef 
	},
	long_names = {
	for abbr, long_name in require "Module:TableTools".sortedPairs(data.long_names) do
		writef('\t\t%-2s = "%s",\n', abbr, long_name)
	end
	
	writef 
	},
}
	return output:concat()
end
function p.main(frame)
	local data = {}
	data.singles, data.ranges, data.long_names = p.make_singles_and_ranges(
		"User:Erutuon/Unicode/DerivedGeneralCategory.txt",
		"User:Erutuon/Unicode/PropertyValueAliases.txt")
	return frame:extensionTag{
		name = "syntaxhighlight",
		content = p.print_data(data),
		args = { lang = "lua" }
	}
end
return p
모듈:Unicode data/derived core properties/make

local p = {}
function p.main(frame)
	local page = frame.args1 or "User:Erutuon/Unicode/DerivedCoreProperties.txt"
	local text = assert(mw.title.new(page):getContent())
	local default_ignorable = text
		:match("Derived Property: Default_Ignorable_Code_Point.-(%f^\n%x%x%x%x.-)%s*\n# Total code points")
	local singles, ranges = {}, {}
	for code_point1, code_point2 in default_ignorable:gmatch("%f^\n%z(%x+)%.?%.?(%x*)") do
		code_point1, code_point2 = tonumber(code_point1, 16), tonumber(code_point2, 16)
		local last_range = ranges#ranges
		if last_range and last_range2 == code_point1 - 1 then
			last_range2 = code_point2 or code_point1
		elseif singlescode_point1 - 1 then
			singlescode_point1 - 1 = nil
			table.insert(ranges, { code_point1 - 1, code_point2 or code_point1 })
		else
			if not code_point2 then
				singlescode_point1 = true
			else
				table.insert(ranges, { code_point1, code_point2 })
			end
		end
	end
	
		local template = 
local data = {}
data.default_ignorable = {
	singles = {
...
	},
	ranges = {
...
	},
}
return data
	local Array = require "Module:array"
	local printed_ranges = Array()
	for _, range in ipairs(ranges) do
		local low, high, script_code = unpack(range)
		printed_ranges:insert(('\t\t{ 0x%05X, 0x%05X },'):format(low, high))
	end
	
	local printed_singles = Array()
	for codepoint in require 'Module:TableTools'.sortedPairs(singles) do
		printed_singles:insert(('\t\t0x%05X = true,'):format(codepoint))
	end
	
	local data = template
		:gsub('%.%.%.', printed_singles:concat('\n'), 1)
		:gsub('%.%.%.', printed_ranges:concat('\n'), 1)
	
	return mw.getCurrentFrame():extensionTag{
		name = "syntaxhighlight",
		content = data,
		args = { lang = "lua" }
	}
end
return p
모듈:Unicode data/age/make

local p = {}
function p.main(frame)
	local page = frame.args1 or "User:Erutuon/Unicode/DerivedAge.txt"
	local text = assert(mw.title.new(page):getContent())
	local singles, ranges = {}, {}
	for code_point1, code_point2, age in text:gmatch("%f^\n%z(%x+)%.?%.?(%x*)%s*;%s*(%d.+)") do
		code_point1, code_point2 = tonumber(code_point1, 16), tonumber(code_point2, 16)
		local last_range = ranges#ranges
		if last_range and last_range2 == code_point1 - 1 and last_range3 == age then
			last_range2 = code_point2 or code_point1
		elseif singlescode_point1 - 1 == age then
			singlescode_point1 - 1 = nil
			table.insert(ranges, { code_point1 - 1, code_point2 or code_point1, age })
		else
			if not code_point2 then
				singlescode_point1 = age
			else
				table.insert(ranges, { code_point1, code_point2, age })
			end
		end
	end
	
		local template = 
return {
	singles = {
...
	},
	ranges = {
...
	},
	aliases = {
...
	},
}
	table.sort(
		ranges,
		function(range1, range2)
			return range11 < range21
		end)
	
	local function make_padding(age)
		return (" "):rep(#'"12.1"' - (#age + 2))
	end
	
	local Array = require "Module:array"
	local printed_ranges = Array()
	for _, range in ipairs(ranges) do
		local low, high, age = unpack(range)
		printed_ranges:insert(('\t\t{ 0x%06X, 0x%06X, %s%q },')
			:format(low, high, make_padding(age), age))
	end
	
	local printed_singles = Array()
	for codepoint, age in require 'Module:TableTools'.sortedPairs(singles) do
		printed_singles:insert(('\t\t0x%06X = %s%q,')
			:format(codepoint, make_padding(age), age))
	end
	
	local printed_aliases = Array()
	local property_value_aliases = mw.title.new "User:Erutuon/Unicode/PropertyValueAliases.txt":getContent()
	local age_aliases = property_value_aliases:match "# Age^\n+%s*(.-)%s*%f^\n#"
	for age, alias in age_aliases:gmatch "age%s*;%s*(%S+)%s*;%s*(%S+)" do
		printed_aliases:insert(('\t\t%s"%s" = "%s",')
			:format(make_padding(age), age, alias))
	end
	
	local data = template
		:gsub('%.%.%.', printed_singles:concat('\n'), 1)
		:gsub('%.%.%.', printed_ranges:concat('\n'), 1)
		:gsub('%.%.%.', printed_aliases:concat('\n'), 1)
	
	return mw.getCurrentFrame():extensionTag{
		name = "syntaxhighlight",
		content = data,
		args = { lang = "lua" }
	}
end
return p
모듈:Unicode data/derived core properties

local data = {}
data.default_ignorable = {
	singles = {
		0x000AD = true,
		0x0034F = true,
		0x0061C = true,
		0x03164 = true,
		0x0FEFF = true,
		0x0FFA0 = true,
	},
	
	ranges = {
		{ 0x0115F, 0x01160 },
		{ 0x017B4, 0x017B5 },
		{ 0x0180B, 0x0180F },
		{ 0x0200B, 0x0200F },
		{ 0x0202A, 0x0202E },
		{ 0x02060, 0x0206F },
		{ 0x0FE00, 0x0FE0F },
		{ 0x0FFF0, 0x0FFF8 },
		{ 0x1BCA0, 0x1BCA3 },
		{ 0x1D173, 0x1D17A },
		{ 0xE0000, 0xE0FFF },
	},
}
return data
모듈:Unicode data/documentation functions

local p = {}
local output_mt = {}
function output_mt:insert(str)
	self.n = self.n + 1
	selfself.n = str
end
function output_mt:insert_format(...)
	self:insert(string.format(...))
end
output_mt.join = table.concat
output_mt.__index = output_mt
local function Output()
	return setmetatable({ n = 0 }, output_mt)
end
function p.show_modules()
	local output = Output()
	
	output:insert 
"
	
	return output:join()
end
return p