<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://wiki.theeum.com/index.php?action=history&amp;feed=atom&amp;title=%EB%AA%A8%EB%93%88%3AHangul</id>
	<title>모듈:Hangul - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.theeum.com/index.php?action=history&amp;feed=atom&amp;title=%EB%AA%A8%EB%93%88%3AHangul"/>
	<link rel="alternate" type="text/html" href="https://wiki.theeum.com/index.php?title=%EB%AA%A8%EB%93%88:Hangul&amp;action=history"/>
	<updated>2026-05-21T01:11:14Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.theeum.com/index.php?title=%EB%AA%A8%EB%93%88:Hangul&amp;diff=9827&amp;oldid=prev</id>
		<title>HyunJongSu: &quot;모듈:Hangul&quot; 문서를 보호했습니다 ([편집=관리자만 허용] (무기한) [이동=관리자만 허용] (무기한))</title>
		<link rel="alternate" type="text/html" href="https://wiki.theeum.com/index.php?title=%EB%AA%A8%EB%93%88:Hangul&amp;diff=9827&amp;oldid=prev"/>
		<updated>2023-07-06T07:16:49Z</updated>

		<summary type="html">&lt;p&gt;&amp;quot;&lt;a href=&quot;/wiki/%EB%AA%A8%EB%93%88:Hangul&quot; title=&quot;모듈:Hangul&quot;&gt;모듈:Hangul&lt;/a&gt;&amp;quot; 문서를 보호했습니다 ([편집=관리자만 허용] (무기한) [이동=관리자만 허용] (무기한))&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023년 7월 6일 (목) 16:16 판&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key eumwiki-eumwk_:diff::1.12:old-9826:rev-9827 --&gt;
&lt;/table&gt;</summary>
		<author><name>HyunJongSu</name></author>
	</entry>
	<entry>
		<id>https://wiki.theeum.com/index.php?title=%EB%AA%A8%EB%93%88:Hangul&amp;diff=9826&amp;oldid=prev</id>
		<title>HyunJongSu: 새 문서: --     한글 처리 관련 함수 모듈          josa: 자동 조사 처리 함수       this function is inspired by           hanp extension: bugzilla:13712           korean library: http://pythonhosted.org/korean/ --  local func = {}  local ustring = mw.ustring  local handata = mw.loadData(&#039;Module:Hangul/data&#039;)  -- load to local variables local final_map = handata.final_map  local final_vowel = handata.final_vowel local final_consonant = handata.final_consonant local fi...</title>
		<link rel="alternate" type="text/html" href="https://wiki.theeum.com/index.php?title=%EB%AA%A8%EB%93%88:Hangul&amp;diff=9826&amp;oldid=prev"/>
		<updated>2023-07-06T07:16:43Z</updated>

		<summary type="html">&lt;p&gt;새 문서: --&lt;a href=&quot;/index.php?title=%ED%95%9C%EA%B8%80_%EC%B2%98%EB%A6%AC_%EA%B4%80%EB%A0%A8_%ED%95%A8%EC%88%98_%EB%AA%A8%EB%93%88_josa:_%EC%9E%90%EB%8F%99_%EC%A1%B0%EC%82%AC_%EC%B2%98%EB%A6%AC_%ED%95%A8%EC%88%98_this_function_is_inspired_by_hanp_extension:_bugzilla:13712_korean_library:_http://pythonhosted.org/korean/_--&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;한글 처리 관련 함수 모듈 josa: 자동 조사 처리 함수 this function is inspired by hanp extension: bugzilla:13712 korean library: http://pythonhosted.org/korean/ -- (없는 문서)&quot;&gt;한글 처리 관련 함수 모듈          josa: 자동 조사 처리 함수       this function is inspired by           hanp extension: bugzilla:13712           korean library: http://pythonhosted.org/korean/ --&lt;/a&gt;  local func = {}  local ustring = mw.ustring  local handata = mw.loadData(&amp;#039;Module:Hangul/data&amp;#039;)  -- load to local variables local final_map = handata.final_map  local final_vowel = handata.final_vowel local final_consonant = handata.final_consonant local fi...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[&lt;br /&gt;
    한글 처리 관련 함수 모듈&lt;br /&gt;
    &lt;br /&gt;
    josa: 자동 조사 처리 함수&lt;br /&gt;
      this function is inspired by&lt;br /&gt;
          hanp extension: bugzilla:13712&lt;br /&gt;
          korean library: http://pythonhosted.org/korean/&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local func = {}&lt;br /&gt;
&lt;br /&gt;
local ustring = mw.ustring&lt;br /&gt;
&lt;br /&gt;
local handata = mw.loadData(&amp;#039;Module:Hangul/data&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- load to local variables&lt;br /&gt;
local final_map = handata.final_map&lt;br /&gt;
&lt;br /&gt;
local final_vowel = handata.final_vowel&lt;br /&gt;
local final_consonant = handata.final_consonant&lt;br /&gt;
local final_rieul = handata.final_rieul&lt;br /&gt;
local final_unknown = handata.final_unknown&lt;br /&gt;
&lt;br /&gt;
local finalform_basic = handata.finalform_basic&lt;br /&gt;
local finalform_vowel = handata.finalform_vowel&lt;br /&gt;
local finalform_consonant = handata.finalform_consonant&lt;br /&gt;
local finalform_rieul = handata.finalform_rieul&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
-- Helper Functions&lt;br /&gt;
--[[&lt;br /&gt;
    Helper Function to interpret boolean strings. From Module:String&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local function getBoolean( boolean_str )&lt;br /&gt;
    local boolean_value;&lt;br /&gt;
 &lt;br /&gt;
    if type( boolean_str ) == &amp;#039;string&amp;#039; then&lt;br /&gt;
        boolean_str = boolean_str:lower();&lt;br /&gt;
        if boolean_str == &amp;#039;false&amp;#039; or boolean_str == &amp;#039;no&amp;#039; or boolean_str == &amp;#039;0&amp;#039;&lt;br /&gt;
                or boolean_str == &amp;#039;&amp;#039;  or boolean_str == &amp;#039;아니오&amp;#039; then&lt;br /&gt;
            boolean_value = false;&lt;br /&gt;
        else&lt;br /&gt;
            boolean_value = true;&lt;br /&gt;
        end&lt;br /&gt;
    elseif type( boolean_str ) == &amp;#039;boolean&amp;#039; then&lt;br /&gt;
        boolean_value = boolean_str;&lt;br /&gt;
    else&lt;br /&gt;
        error( &amp;#039;No boolean value found&amp;#039; );&lt;br /&gt;
    end    &lt;br /&gt;
    return boolean_value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function finalclass(str)&lt;br /&gt;
    local lastchar = ustring.match(str, &amp;#039;.*([%w])&amp;#039;)&lt;br /&gt;
 &lt;br /&gt;
    if lastchar == nil then return final_unknown end&lt;br /&gt;
 &lt;br /&gt;
    if lastchar &amp;gt;= &amp;#039;가&amp;#039; and lastchar &amp;lt;= &amp;#039;힣&amp;#039; then&lt;br /&gt;
        local codepoint = ustring.codepoint(lastchar)&lt;br /&gt;
        local final = (codepoint - 0xAC00) % 0x1C&lt;br /&gt;
        if final == 0 then&lt;br /&gt;
            return final_vowel&lt;br /&gt;
        elseif final == 8 then&lt;br /&gt;
            return final_rieul&lt;br /&gt;
        else&lt;br /&gt;
            return final_consonant&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    return final_map[lastchar] or final_unknown&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    사용법:&lt;br /&gt;
    {{#invoke:Hangul|josa|str= |josa = | defaultjosa = | override = | josaonly= }}&lt;br /&gt;
 &lt;br /&gt;
    str = 체언&lt;br /&gt;
    josa = 조사&lt;br /&gt;
    defaultjosa = 체언의 마지막 받침을 알 수 없는 경우에 defaultjosa 값을 쓴다.&lt;br /&gt;
    override = True/False : True이면 체언의 어미에 상관없이 defaultjosa (없다면 josa) 값을 쓴다.&lt;br /&gt;
    josaonly = True/False: True이면 체언 부분은 생략한다. (복잡한 틀 설계용)&lt;br /&gt;
    ]]&lt;br /&gt;
 &lt;br /&gt;
function func.josa(frame)&lt;br /&gt;
    local input_string = frame.args.str or frame.args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
    local input_josa = frame.args.josa or frame.args[2] or &amp;#039;&amp;#039;&lt;br /&gt;
    local input_defaultjosa = frame.args.defaultjosa&lt;br /&gt;
    local override = getBoolean(frame.args.override or false)&lt;br /&gt;
    local josaonly = getBoolean(frame.args.josaonly or false)&lt;br /&gt;
    &lt;br /&gt;
    return func._josa(input_string, input_josa, input_defaultjosa, override, josaonly)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function func._josa(input_string, input_josa, input_defaultjosa, override, josaonly)&lt;br /&gt;
    local output_josa&lt;br /&gt;
    &lt;br /&gt;
    if override then&lt;br /&gt;
        output_josa = input_defaultjosa or input_josa&lt;br /&gt;
    else&lt;br /&gt;
        local char_class = finalclass(input_string)&lt;br /&gt;
        if char_class == final_vowel then&lt;br /&gt;
            output_josa = finalform_vowel[input_josa] or input_josa&lt;br /&gt;
        elseif char_class == final_consonant then&lt;br /&gt;
            output_josa = finalform_consonant[input_josa] or input_josa&lt;br /&gt;
        elseif char_class == final_rieul then&lt;br /&gt;
            output_josa = finalform_rieul[input_josa] or input_josa&lt;br /&gt;
        else -- final_unknown&lt;br /&gt;
            output_josa = input_defaultjosa or finalform_basic[input_josa] or input_josa&lt;br /&gt;
        end&lt;br /&gt;
        -- mw.log (input_string .. &amp;#039;[&amp;#039; .. char_class .. &amp;#039;]&amp;#039; .. output_josa)&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    if josaonly then&lt;br /&gt;
        return output_josa&lt;br /&gt;
    else&lt;br /&gt;
        return input_string .. output_josa&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return func&lt;/div&gt;</summary>
		<author><name>HyunJongSu</name></author>
	</entry>
</feed>