편집 요약 없음
태그: 되돌려진 기여
삼쩌모 (토론)의 10581 판 편집을 되돌림
태그: 편집 취소
1번째 줄: 1번째 줄:
-- Module:Dictionary  (전체 교체)
-- Module:Dictionary  ▼전체 교체
local p, data = {}, mw.loadData('Module:Dictionary/data')
local p     = {}
local frame  = mw.getCurrentFrame()
local encode = mw.text.encode
local data  = mw.loadData('Module:Dictionary/data')


-- 위키텍스트 → HTML → plain-text 를 얻기 위한 헬퍼
function p.render(frame)
local function toPlain(html)
-- ① 검색 UI가 들어갈 빈 컨테이너
-- strip strip-markers ⇒ 태그 ⇒ decode 엔티티
local out = { '<div class="dictionary-container dict-card"></div>' }
local txt = mw.text.killMarkers(html):gsub('<[^>]+>', '')
return mw.text.decode(txt)
end


function p.render()
-- ② 숨겨 둔 JSON (XSS 방지 HTML-escape)
local dict = {}              -- { plainLower → HTML 카드 }
out[#out+1] = '<div id="dictionary-json" style="display:none">'
for term, defi in pairs(data) do
              .. encode(mw.text.jsonEncode(data))
local termHTML = frame:preprocess(term)
              .. '</div>'
local defHTML  = frame:preprocess(defi)
return table.concat(out, '\n')
 
-- 보기 좋은 카드형 HTML (style 은 JS 쪽 CSS 로)
local card = '<div class="dict-card"><div class="term">'
            .. termHTML .. '</div> <div class="def">' .. defHTML
            .. '</div></div>'
 
dict[toPlain(termHTML):lower()] = card
end
 
-- 숨은 JSON 삽입
return '<script type="application/json" id="dictionary-json">'
      .. mw.text.encode(mw.text.jsonEncode(dict)) .. '</script>'
end
end


return p
return p

2025년 6월 29일 (일) 03:57 판

이 모듈에 대한 설명문서는 모듈:Dictionary/설명문서에서 만들 수 있습니다

-- Module:Dictionary  ▼전체 교체
local p      = {}
local encode = mw.text.encode
local data   = mw.loadData('Module:Dictionary/data')

function p.render(frame)
	-- ① 검색 UI가 들어갈 빈 컨테이너
	local out = { '<div class="dictionary-container dict-card"></div>' }

	-- ② 숨겨 둔 JSON (XSS 방지 HTML-escape)
	out[#out+1] = '<div id="dictionary-json" style="display:none">'
	              .. encode(mw.text.jsonEncode(data))
	              .. '</div>'
	return table.concat(out, '\n')
end

return p