모듈:TemplateFunction/설명문서: 두 판 사이의 차이
(→curry) |
편집 요약 없음 |
||
1번째 줄: | 1번째 줄: | ||
== 내보낸 값 == | == 내보낸 값 == | ||
=== | === create === | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
local tf = require('모듈:TemplateFunction') | local tf = require('모듈:TemplateFunction') | ||
local hello = tf. | local hello = tf.create('Hello, {{{1}}}!') | ||
print(hello{'world'}) -- Hello, World! | 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{'undefined'}) | |||
</syntaxhighlight> | |||
기존의 파서 함수나 상수를 실행가능한 틀 객체로 만드는 함수입니다. 인자에 파서 함수 이름을 입력해주세요. #으로 시작하는 파서 함수는 #도 포함해야 합니다. | |||
=== importTag === | |||
<syntaxhighlight lang="lua"> | |||
local tf = require('모듈:TemplateFunction') | |||
local nowiki = tf.importTag('nowiki') | |||
print(nowiki{"[[리버티게임:대문]]"}) | |||
</syntaxhighlight> | |||
기존의 파서 태그를 실행가능한 틀 객체로 만드는 함수입니다. 인자에 태그 이름을 입력하세요. 이 함수는 #tag 파서 함수의 [[위백:en:Syntactic sugar]]입니다. | |||
== 틀 객체 == | == 틀 객체 == | ||
29번째 줄: | 54번째 줄: | ||
=== source === | === source === | ||
틀 객체의 위키텍스트 원본 소스 코드를 저장합니다. | 틀 객체의 위키텍스트 원본 소스 코드를 저장합니다. create나 load로 생성한 객체에만 존재합니다. | ||
=== name === | |||
틀 객체가 연결된 파서 함수의 이름을 저장합니다. import나 importTag로 생성한 객체에만 존재합니다. | |||
=== args === | |||
기존에 바인딩된 변수를 저장합니다. import나 importTag로 생성한 객체에만 존재합니다. | |||
=== curry === | === curry === |
2023년 11월 25일 (토) 20:11 판
내보낸 값
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{'undefined'})
기존의 파서 함수나 상수를 실행가능한 틀 객체로 만드는 함수입니다. 인자에 파서 함수 이름을 입력해주세요. #으로 시작하는 파서 함수는 #도 포함해야 합니다.
importTag
local tf = require('모듈:TemplateFunction')
local nowiki = tf.importTag('nowiki')
print(nowiki{"[[리버티게임:대문]]"})
기존의 파서 태그를 실행가능한 틀 객체로 만드는 함수입니다. 인자에 태그 이름을 입력하세요. 이 함수는 #tag 파서 함수의 위백:en:Syntactic sugar입니다.
틀 객체
local tf = require('모듈:TemplateFunction')
local hello = tf.new('{{{1}}}, {{{2|World}}}!')
local hi = hello:curry{'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!
틀 객체는 new 함수를 통해 생성합니다. 틀 객체는 함수처럼 호출할 수 있으며, 이 경우 curry 메소드 처럼 동작합니다. 이 객체를 문자열로 변환하면 parse 메소드가 내부적으로 실행됩니다.
source
틀 객체의 위키텍스트 원본 소스 코드를 저장합니다. create나 load로 생성한 객체에만 존재합니다.
name
틀 객체가 연결된 파서 함수의 이름을 저장합니다. import나 importTag로 생성한 객체에만 존재합니다.
args
기존에 바인딩된 변수를 저장합니다. import나 importTag로 생성한 객체에만 존재합니다.
curry
기존 틀에서 변수를 부분적으로 적용시킨 새로운 틀 객체를 반환합니다. 값이 확정되지 않은 숫자 변수는 다음 커링 호출 때 이어서 받아들일 수 있도록 변수명을 앞당깁니다. 즉, 이 메소드는 위키텍스트의 커링을 구현합니다.
parse
기존 틀에서 변수를 적용시켜서 완전히 처리된 문자열로 만듭니다. 변수가 확정되지 않으면 기본값으로 대치됩니다. 틀 객체를 문자열로 변환할 경우에도 인자가 주어지지 않은 parse 메소드처럼 작동합니다.