위키백과:문서 끼워넣기

위키백과에서는 {{ }} 문법을 써서, 한 문서를 다른 문서 안에 끼워넣을(transclude) 수 있습니다. 이는 HTML

<iframe>

과 비슷한 일을 합니다. 보통 을 사용하는 데 씁니다.

  • 일반 문서를 끼워넣을 때는 문서 이름 앞에 쌍점을 찍습니다({{:고양이}}).
  • 틀 문서는 ‘틀:’을 뺍니다({{생물 분류}}).
  • 다른 문서는 문서 이름을 그대로 씁니다({{위키백과:길라잡이}}).

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

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

작동 원리 편집

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

{{문서이름}}

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

부분 끼워넣기 편집

틀이나 문서의 일부만을 끼워 넣는 것도 가능합니다. 이는 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> 실행됨 결과가 풀림

버그 편집

현재 <ref>...</ref><gallery>...</gallery> 내부에서는 풀기가 작동하지 않습니다. 이 버그의 진행 상황에 대해 알고 싶으시다면 파브리케이터: T4700 gerrit:272916를 참고하세요.