모듈:TemplateFunction/설명문서: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
(새 문서: == new == <syntaxhighlight lang="lua"> local hello = p.new('Hello, {{{1}}}') print(hello('world')) -- Hello, World! </syntaxhighlight> 루아 모듈 내에서 간단한 위키텍스트 틀을 만들어 실행시킬 수 있는 함수를 만듭니다.)
 
 
(같은 사용자의 중간 판 21개는 보이지 않습니다)
1번째 줄: 1번째 줄:
== new ==
== 내보낸 값 ==
=== create ===
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local hello = p.new('Hello, {{{1}}}')
local tf = require('모듈:TemplateFunction')
print(hello('world')) -- Hello, World!
local hello = tf.create('Hello, {{{1}}}!')
print(hello{'world'}) -- Hello, World!
</syntaxhighlight>
</syntaxhighlight>
루아 모듈 내에서 간단한 위키텍스트 틀을 만들어 실행시킬 수 있는 함수를 만듭니다.
루아 모듈 내에서 간단한 위키텍스트 틀을 만들어 실행시킬 수 있는 틀 객체를 만드는 함수입니다. 인자에 위키텍스트 소스 코드를 입력해 주세요.
 
=== load ===
<syntaxhighlight lang="lua">
local tf = require('모듈:TemplateFunction')
local user = tf.load('USERNAME')
</syntaxhighlight>
기존의 문서나 틀을 실행 가능한 틀 객체로 만드는 함수입니다. 인자에 이름공간을 생략한 틀 이름이나 이름공간을 포함한 문서 제목을 입력해 주세요. 기본 이름공간은 <code>:</code>(콜론)으로 시작해야 합니다.
 
=== import ===
<syntaxhighlight lang="lua">
local tf = require('모듈:TemplateFunction')
local urlget = tf.import('#urlget')
print(urlget{'offset'})
</syntaxhighlight>
 
기존의 파서 함수나 상수를 실행가능한 틀 객체로 만드는 함수입니다. 인자에 파서 함수 이름을 입력해주세요. #으로 시작하는 파서 함수는 #도 포함해야 합니다.
 
=== importTag ===
<syntaxhighlight lang="lua">
local tf = require('모듈:TemplateFunction')
local nowiki = tf.importTag('nowiki')
print(nowiki{"[[리버티게임:대문]]"})
</syntaxhighlight>
 
기존의 파서 태그를 실행가능한 틀 객체로 만드는 함수입니다. 인자에 태그 이름을 입력하세요. 이 함수는 #tag 파서 함수의 [[위백:en:Syntactic sugar|Syntactic sugar]]입니다.
 
== 틀 객체 ==
<syntaxhighlight lang="lua">
local tf = require('모듈:TemplateFunction')
local hello = tf.create('{{{1}}}, {{{2|World}}}!')
 
local hi = hello:bind{'Hi'}
print(hi.source) -- Hi, {{{1|World}}}!
 
print(hi:parse()) -- Hi, World!
print(tostring(hi)) -- Hi, World!
print(hi) -- Hi, World!
print(hi:parse{'Libertygame'}) -- Hi, Libertygame!
 
 
local liberty = hi{'Libertygame'}
print(liberty) -- Hi, Libertygame!
print(liberty.source) -- Hi, Libertygame!
</syntaxhighlight>
틀 객체는 이 모듈에 포함된 각종 함수를 통해 생성합니다. 틀 객체는 함수처럼 호출할 수 있으며, 이 경우 [[#curry|curry 메소드]] 처럼 동작합니다. 이 객체를 문자열로 변환하면 [[#parse|parse 메소드]]가 내부적으로 실행됩니다.
 
=== source ===
틀 객체의 위키텍스트 원본 소스 코드를 저장합니다. 파서 함수의 경우 파서 함수를 호출할 수 있는 코드가 대신 제공됩니다.
 
=== bind ===
기존 틀에서 변수를 부분적으로 적용시킨 새로운 틀 객체를 반환합니다. 값이 확정되지 않은 숫자 변수는 다음 커링 호출 때 이어서 받아들일 수 있도록 변수명을 앞당깁니다. 다음에 숫자 변수로 할당되는 익명 인자는 값이 확정된 마지막 숫자 키의 다음 숫자 키부터 할당됩니다. 이 메소드는 위키텍스트의 [[위백:커링|커링]]을 구현합니다.
 
=== parse ===
기존 틀에서 변수를 적용시켜서 완전히 처리된 문자열로 만듭니다. 변수가 확정되지 않으면 기본값으로 대치됩니다. 틀 객체를 문자열로 변환할 경우에도 인자가 주어지지 않은 parse 메소드처럼 작동합니다.
 
=== forward ===
기존 틀에서 받아들이는 변수의 키를 바꿉니다. 이 메소드에 주어지는 테이블의 키는 기존 키고, 값은 새로운 키입니다.
 
=== finalize ===
특정 키에 대해 더 이상 값을 받지 않고, 확정되지 않은 키는 기본값으로 고정합니다.

2024년 10월 6일 (일) 12:51 기준 최신판

내보낸 값[원본 편집]

create[원본 편집]

local tf = require('모듈:TemplateFunction')
local hello = tf.create('Hello, {{{1}}}!')
print(hello{'world'}) -- Hello, World!

루아 모듈 내에서 간단한 위키텍스트 틀을 만들어 실행시킬 수 있는 틀 객체를 만드는 함수입니다. 인자에 위키텍스트 소스 코드를 입력해 주세요.

load[원본 편집]

local tf = require('모듈:TemplateFunction')
local user = tf.load('USERNAME')

기존의 문서나 틀을 실행 가능한 틀 객체로 만드는 함수입니다. 인자에 이름공간을 생략한 틀 이름이나 이름공간을 포함한 문서 제목을 입력해 주세요. 기본 이름공간은 :(콜론)으로 시작해야 합니다.

import[원본 편집]

local tf = require('모듈:TemplateFunction')
local urlget = tf.import('#urlget')
print(urlget{'offset'})

기존의 파서 함수나 상수를 실행가능한 틀 객체로 만드는 함수입니다. 인자에 파서 함수 이름을 입력해주세요. #으로 시작하는 파서 함수는 #도 포함해야 합니다.

importTag[원본 편집]

local tf = require('모듈:TemplateFunction')
local nowiki = tf.importTag('nowiki')
print(nowiki{"[[리버티게임:대문]]"})

기존의 파서 태그를 실행가능한 틀 객체로 만드는 함수입니다. 인자에 태그 이름을 입력하세요. 이 함수는 #tag 파서 함수의 Syntactic sugar입니다.

틀 객체[원본 편집]

local tf = require('모듈:TemplateFunction')
local hello = tf.create('{{{1}}}, {{{2|World}}}!')

local hi = hello:bind{'Hi'}
print(hi.source) -- Hi, {{{1|World}}}!

print(hi:parse()) -- Hi, World!
print(tostring(hi)) -- Hi, World!
print(hi) -- Hi, World!
print(hi:parse{'Libertygame'}) -- Hi, Libertygame!


local liberty = hi{'Libertygame'}
print(liberty) -- Hi, Libertygame!
print(liberty.source) -- Hi, Libertygame!

틀 객체는 이 모듈에 포함된 각종 함수를 통해 생성합니다. 틀 객체는 함수처럼 호출할 수 있으며, 이 경우 curry 메소드 처럼 동작합니다. 이 객체를 문자열로 변환하면 parse 메소드가 내부적으로 실행됩니다.

source[원본 편집]

틀 객체의 위키텍스트 원본 소스 코드를 저장합니다. 파서 함수의 경우 파서 함수를 호출할 수 있는 코드가 대신 제공됩니다.

bind[원본 편집]

기존 틀에서 변수를 부분적으로 적용시킨 새로운 틀 객체를 반환합니다. 값이 확정되지 않은 숫자 변수는 다음 커링 호출 때 이어서 받아들일 수 있도록 변수명을 앞당깁니다. 다음에 숫자 변수로 할당되는 익명 인자는 값이 확정된 마지막 숫자 키의 다음 숫자 키부터 할당됩니다. 이 메소드는 위키텍스트의 커링을 구현합니다.

parse[원본 편집]

기존 틀에서 변수를 적용시켜서 완전히 처리된 문자열로 만듭니다. 변수가 확정되지 않으면 기본값으로 대치됩니다. 틀 객체를 문자열로 변환할 경우에도 인자가 주어지지 않은 parse 메소드처럼 작동합니다.

forward[원본 편집]

기존 틀에서 받아들이는 변수의 키를 바꿉니다. 이 메소드에 주어지는 테이블의 키는 기존 키고, 값은 새로운 키입니다.

finalize[원본 편집]

특정 키에 대해 더 이상 값을 받지 않고, 확정되지 않은 키는 기본값으로 고정합니다.