도움말:문서 끼워넣기

L위키, 시민들이 참여하여 가꾸는 리버럴 위키

L위키에서는 {{ }} 문법을 써서, 한 문서를 다른 문서 안에 끼워넣을(transclude) 수 있습니다. 이는 HTML의 아이프레임과 비슷한 일을 합니다. 보통 을 사용하는 데 씁니다.

  • 일반 문서를 끼워넣을 때는 문서 이름 앞에 쌍점을 찍습니다({{:오렌지}}).
  • 틀 문서는 ‘틀:’을 뺍니다({{스포일러}}).
  • 다른 문서는 문서 이름을 그대로 씁니다({{L위키:다섯 원칙}}).

이와 같은 문법을 사용하여 저장한 이후, 나중에 다시 문서의 소스를 보면 해당 문서의 원래 내용 대신, ‘{{스포일러}}’와 같은 끼워넣기 문법만 그 자리에 위치해 있습니다. 위키백과는 이러한 끼워넣기 문법을 만나면 문서의 원래 내용을 자동으로 가져와서 사용자에게 보여줍니다.

끼워넣어진 문서의 내용이 바뀌면, 끼워넣은 위치의 내용도 그에 따라 자동으로 바뀝니다.

작동 원리[편집 | 원본 편집]

같은 내용을 다른 문서에 끼워넣으려면 다음과 같이 하면 됩니다:

{{문서이름}}

만약 문서 A에 이런 내용이 있다면 바로 그 자리에 언급된 문서이름인 B의 내용이 채워집니다.

Transclusion-multiple-foo.png

부분 끼워넣기[편집 | 원본 편집]

틀이나 문서의 일부만을 끼워 넣는 것도 가능합니다. 이는 noinclude, includeonly, onlyinclude 등 세 종류의 미디어위키 전용 태그를 이용해서 구현할 수 있습니다. 각 태그의 역할은 다음과 같습니다.

noinclude
이 태그로 감싼 부분은 다른 문서에 끼워 넣어지지 않습니다. 끼워 넣어지는 부분에 의도하지 않은 줄바꿈이 들어가지 않도록 주의해야 합니다.
includeonly
이 태그로 감싼 부분은 그 문서 자체에서는 나타나거나 적용되지 않고, 다른 문서에 끼워넣어질 때에만 나타납니다. 이 태그 안에 분류 위키태그를 넣으면 문서(틀) 자체에는 분류를 적용하지 않으면서 그 문서(틀)를 끼워넣은 문서에 분류를 적용할 수 있습니다.
onlyinclude
이 태그로 감싼 부분은 끼워 넣어지며 바깥 부분은 끼워 넣어지지 않습니다. 끼워 넣어지는 부분에 의도하지 않은 줄바꿈이 들어가지 않도록 주의해야 합니다.

유의점[편집 | 원본 편집]

  • 시작한 태그가 일단 닫힌 다음에 다른 태그를 시작해야 합니다.
  • 부분 끼워넣기 태그를 쓸 때에는 끼워 넣어질 부분의 줄바꿈에 유의해야 합니다. 아래 표에서 줄바꿈이 생기는 코드는 끼워 넣었을 때 줄바꿈이 추가되어 문서 모양이 이상해질 수 있습니다.
구분 줄바꿈 없는 코드(권장) 줄바꿈 생기는 코드
noinclude 틀 내용<noinclude>
틀 설명
</noinclude>
틀 내용
<noinclude>
틀 설명
</noinclude>
onlyinclude <onlyinclude>틀 내용</onlyinclude>
틀 설명
<onlyinclude>틀 내용
</onlyinclude>
틀 설명

사용 예[편집 | 원본 편집]

기본 사용 예[편집 | 원본 편집]

코드 틀 문서에서 끼워 넣은 문서에서
가<noinclude>나</noinclude> 가나
가<onlyinclude>나</onlyinclude> 가나
가<includeonly>나</includeonly> 가나

복합 사용 결과[편집 | 원본 편집]

코드 틀 문서에서 끼워 넣은 문서에서 비고
가<onlyinclude>나<noinclude>다</noinclude></onlyinclude> 가나다
가<onlyinclude>나<includeonly>다</includeonly></onlyinclude> 가나 나다
가<noinclude>나<onlyinclude>다</onlyinclude></noinclude> 가나다 안쪽의 onlyinclude 우선.
가<noinclude>나<includeonly>다</includeonly></noinclude> 가나 '다' 부분은 어디에서도 나타나지 않음.
가<includeonly>나<onlyinclude>다</onlyinclude></includeonly> '나' 부분은 어디에서도 나타나지 않음.
가<includeonly>나<noinclude>다</noinclude></includeonly> 가나 '다' 부분은 어디에서도 나타나지 않음.

자주 쓰이는 코드[편집 | 원본 편집]

코드 비고
틀 내용<noinclude>{{설명문서}}</noinclude> {{설명문서}}는 설명 문서의 내용을 가져와 보여줌.
<onlyinclude>틀 내용</onlyinclude>{{설명문서}}
틀 내용<noinclude>틀 설명, 틀 분류 및 다국어 링크</noinclude> 설명 문서의 내용을 틀 자체에 포함.
<onlyinclude>틀 내용</onlyinclude>틀 설명, 틀 분류 및 다국어 링크
틀 내용<includeonly>문서 분류</includeonly><noinclude>{{설명문서}}</noinclude> (권장 방식) 문서 분류는 끼워 넣어지면 적용됨.
<onlyinclude>틀 내용<includeonly>문서 분류</includeonly></onlyinclude>{{설명문서}}

문서 풀어넣기[편집 | 원본 편집]

문서 풀어넣기는 풀기: 를 이용해 문서의 내용을 직접 끼워 넣는 방법입니다. 사용법은, 원래 끼워넣기 문법에서 {{ 다음에 풀기: 또는 subst: 를 넣으면 됩니다.

  • {{풀기:고양이}}
  • {{풀기:생물 분류}}
  • {{풀기:위키백과:길라잡이}}

이와 같은 문법을 사용하여 저장한 이후, 나중에 다시 문서의 소스를 보면 끼워넣기 문법과는 다르게 풀기 문법은 사라져 있고 그 자리에 문서의 원래 내용이 그대로 복사되어 들어가 있습니다. 그러므로,

  • 대체된 문서의 내용이 바뀌어도, 끼워넣은 위치의 내용에는 영향을 주지 않습니다.
  • 넘겨주기 문서라면 넘겨받은 문서의 내용이 출력됩니다.

틀을 만들 때의 고려사항[편집 | 원본 편집]

풀어넣기를 이용해 틀을 쓰면 틀 안에 포함된 다른 틀이나 특수 명령문의 코드가 그대로 문서에 쓰여집니다. 코드 대신 실행 결과가 문서에 쓰이게 하려면 틀을 만들 때 풀기:를 사용하면 됩니다. 단, 틀을 편집하면서 풀기:를 그대로 쓰면 편집과 동시에 목적 틀이 풀려버리기 때문에 곤란합니다. 이를 해결하는 방법으로, 풀기:를 includeonly 위키태그로 감싸서 <includeonly>풀기:</includeonly>와 같이 쓰는 방법이 있고, 매개변수 형식을 이용해서 {{{|풀기:}}}처럼 쓰는 방법이 있습니다. 예를 들어 다음과 같은 내용으로 A틀을 불러오는 틀을 만들고 이 틀을 다른 문서에서 풀어 쓰면 A틀의 결과가 문서에 쓰여집니다.

{{{{{|풀기:}}}A}}

이렇게 실행 결과가 풀어지도록 만든 틀은 풀어 쓰지 않고 끼워넣어 썼을 때는 해당 부분이 실행되지 않고 {{풀기:A}}처럼 문자열 그대로 출력되는 문제점이 있습니다. 이를 해결하려면 풀기: 대신 안전풀기:를 쓰면 됩니다. 안전풀기:를 위와 같은 방식으로 쓰면, 끼워넣어 썼을 때는 실행되고 풀어서 썼을 때는 실행 결과가 풀어집니다.

틀 안에 또다른 틀·기본 틀·특수함수를 넣는 방식, 그리고 그 틀을 불러오는 방식에 따른 결과를 정리하면 다음과 같습니다.

틀 내부에 쓰인 방식 틀을 끼워넣었을 때의 결과 틀을 풀어넣었을 때의 결과
끼워넣기 실행됨 코드가 풀림
{{{|풀기:}}}, <includeonly>풀기:</includeonly> 문자열 그대로 출력 결과가 풀림
{{{|안전풀기:}}}, <includeonly>안전풀기:</includeonly> 실행됨 결과가 풀림