<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://gwangju-storyplatform.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ec3admin</id>
	<title>광주문화예술인문스토리플랫폼 - 사용자 기여 [ko]</title>
	<link rel="self" type="application/atom+xml" href="https://gwangju-storyplatform.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ec3admin"/>
	<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8A%B9%EC%88%98:%EA%B8%B0%EC%97%AC/Ec3admin"/>
	<updated>2026-04-04T21:57:49Z</updated>
	<subtitle>사용자 기여</subtitle>
	<generator>MediaWiki 1.31.8</generator>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%95%9C%EA%B5%AD%EA%B4%91%EA%B8%B0%EC%88%A0%EC%9B%90&amp;diff=59927</id>
		<title>한국광기술원</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%95%9C%EA%B5%AD%EA%B4%91%EA%B8%B0%EC%88%A0%EC%9B%90&amp;diff=59927"/>
		<updated>2026-03-19T05:19:26Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;한국광기술원&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=한국광기술원&lt;br /&gt;
|한자명=韓國光技術院&lt;br /&gt;
|영문명=Korea Photonics Technology Institute&lt;br /&gt;
|이칭=KOPTI&lt;br /&gt;
|유형=연구&lt;br /&gt;
|설립자=&lt;br /&gt;
|출범/해체시기=2001년&lt;br /&gt;
|소재지=대한민국 광주광역시 북구 첨단벤처로108번길 9&lt;br /&gt;
|위도(latitude)=35.2318529&lt;br /&gt;
|경도(longitude)=126.8601828&lt;br /&gt;
|InfoURL=https://public.aks.ac.kr/~gwangju/wiki/index.php/한국광기술원&lt;br /&gt;
|iconURL=https://dh.aks.ac.kr/~metaArchive/gwangju/2024/한국광기술원.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[한국광기술원]]은 광융합산업의 기술개발과 육성, 기술혁신을 통해 국가 산업발전에 기여하기 위한 목적으로 설립되었다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 활동 및 사건 ==&lt;br /&gt;
&lt;br /&gt;
* [[한국광기술원]]은 국내 유일 광융합기술 전문 연구기관으로, 설립 이래 원천 연구, 인프라 구축, 광융합 생태계 조성 등을 통해 광융합 산업을 선도하고 있다. 2023년 아산시에 탕정테크노일반산업단지에 분원 설치를 위한 협약을 맺어 2028년 분원이 설립될 예정이다.&lt;br /&gt;
* [[한국광기술원]]은 LED, 광통신 부품, 광응용 모듈, 초정밀 광학부품(렌즈, 미러), 산업용 레이저 및 다양한 광산업 분야에서 첨단 기술 개발을 통한 광산업계의 기술 경쟁력 확보와 광관련 제품의 시험ㆍ인증 및 시험생산, 창업보육, 인력양성 동의 업무를 수행하는 광(光) 전문생산기술연구소다.&lt;br /&gt;
* [[한국광기술원]]은 LED, 레이저, 광의료, 3D 분야, 에너지 분야 등의 역량을 바탕으로 4차 산업혁명 시대 대응을 위한 광융합 선도 전문연구기관이 되고자 다양한 연구 분야의 기술 개발을 추진하고 있다. 4개 연구개발본부로 구성되어 있으며, 각각 광원, 광응용, 조명융합, 광ICT융합에 관련된 제품개발을 수행하고 있다.&lt;br /&gt;
* 광원 연구본부에서는 전기.자율 주행차, 차세대 디스플레이 등 4차 산업혁명시대를 견인할 융복합 산업분야에 적용 가능한 마이크로 LED, 광에너지. 레이저 핵심 광원 기술을 중점적으로 연구하고 있으며, 광응용 연구본부는 피부미용, 발모촉진 등 헬스케어 및 바이오분야에서, 조명융합 연구본부는 조명용 광원의 원천소재, 부품 개발과 자동차, 수송, 해양, 국방, 의료 등 다양한 분야와 융합된 환경평가기술 개발을 추진하고 있다. 광ICT융합 연구본부는 스마트시티, 스마트에너지. 스마트오피스 등 인공지능 중심으로 전환 시기에 맞추어 ICT 융합, 클라우드, 빅데이터를 통한 초실감성, 초지능성, 초연결성 구현이 가능한 센싱, 디스플레이 기술과 관련된 제품을 개발하고 있다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 지역문화적 영향력 ==&lt;br /&gt;
&lt;br /&gt;
* [[한국광기술원]]은 2023년 장애인 스포츠 선수 고용증진을 위하여 [[광주광역시장애인체육회]], [[한국장애인고용공단 광주지역본부]]와 업무협약을 맺었다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 관련 인물/문헌/장소 등 ==&lt;br /&gt;
&lt;br /&gt;
* 1999년 [[광주광산업육성계획]]이 승인되면서 2001년 4월 개원하여 [[광주광역시 북구]] [[월출동]] [[광주첨단과학국가산업단지]] 내에 위치하고 있으며 전체 인력은 270여명 수준으로 운영되고 있다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 한국광기술원&lt;br /&gt;
| 광주광산업육성계획&lt;br /&gt;
| 광주첨단과학국가산업단지&lt;br /&gt;
| 한국광기술원 분원&lt;br /&gt;
| 아산 탕정테크노일반산업단지&lt;br /&gt;
| 광주광역시장애인체육회&lt;br /&gt;
| 한국장애인고용공단 광주지역본부&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=한국광기술원}}&lt;br /&gt;
&lt;br /&gt;
{{이야기조각&lt;br /&gt;
| 테스트버튼&lt;br /&gt;
| https://ux.etribe.co.kr/v2/html/customer/07/F_070_030_001.html&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 이미지 ==&lt;br /&gt;
{{이미지스와이퍼&lt;br /&gt;
  | 1=https://dh.aks.ac.kr/~metaArchive/gwangju/2023/한국광기술원/한국광기술원.jpg&lt;br /&gt;
  | 2=https://dh.aks.ac.kr/~metaArchive/gwangju/2023/한국광기술원/한국광기술원_과학자의길_안내판.jpg&lt;br /&gt;
  | 3=https://dh.aks.ac.kr/~metaArchive/gwangju/2023/한국광기술원/한국광기술원_전경.jpg&lt;br /&gt;
  | 4=https://dh.aks.ac.kr/~metaArchive/gwangju/2023/한국광기술원/한국광기술원_종합안내도.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 지도 ==&lt;br /&gt;
{{구글지도 | 위도=35.2318529| 경도=126.8601828| 줌=16 }}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 디지털광주문화대전 || 한국광기술원 || http://www.grandculture.net/gwangju/toc/GC60003164&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 홈페이지 || 한국광기술원 || https://www.kopti.re.kr/ko/index.do&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 연합뉴스 || 한국광기술원, 19일 광융합 산업 세미나 개최(2023-12-18, 송형일 기자) || https://www.yna.co.kr/view/AKR20231218070600054?input=1195m&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 데일리한국 || 박경귀 아산시장, “한국광기술원 분원 유치로 광자시대 선도”(2023-11-22, 인장교 기자) || https://daily.hankooki.com/news/articleView.html?idxno=1022853&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 전남일보 || 광주시장애인체육회-광기술원·장애인고용공단, 협약(2023-12-26, 최동환 기자) || https://www.jnilbo.com/72349958535&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 한국광기술원 || https://dh.aks.ac.kr/~metaArchive/gwangju/2023/한국광기술원/한국광기술원.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 한국광기술원 과학자의길 안내판 || https://dh.aks.ac.kr/~metaArchive/gwangju/2023/한국광기술원/한국광기술원_과학자의길_안내판.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 한국광기술원 전경 || https://dh.aks.ac.kr/~metaArchive/gwangju/2023/한국광기술원/한국광기술원_전경.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 한국광기술원 종합안내도 || https://dh.aks.ac.kr/~metaArchive/gwangju/2023/한국광기술원/한국광기술원_종합안내도.jpg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
| [[한국광기술원]] || [[광주광산업육성계획]] ||  ||  || 한국광기술원은 광주광산업육성계획 추진으로 개원하였다.&lt;br /&gt;
|-&lt;br /&gt;
| [[한국광기술원]] || [[광주첨단과학국가산업단지]] ||  ||  || 한국광기술원은 광주첨단구과학국가산업단지에 있다.&lt;br /&gt;
|-&lt;br /&gt;
| [[한국광기술원]] || [[한국광기술원 분원]] ||  ||  || 한국광기술원은 한국광기술원 분원이 생길 예정이다.&lt;br /&gt;
|-&lt;br /&gt;
| [[한국광기술원 분원]] || [[아산 탕정테크노일반산업단지]] ||  ||  || 한국광기술원 분원은 아산 탕정테크노일반산업단지에 설립될 예정이다.&lt;br /&gt;
|-&lt;br /&gt;
| [[한국광기술원]] || [[광주광역시장애인체육회]] ||  ||  || 한국광기술원은 광주광역시장애인체육회와 업무협약을 맺었다.&lt;br /&gt;
|-&lt;br /&gt;
| [[한국광기술원]] || [[한국장애인고용공단 광주지역본부]] ||  ||  || 한국광기술원은 한국장애인고용공단 광주지역본부와 업무협약을 맺었다.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Class 선택]] [[분류:Class 선택/2024]] [[분류:SubClass 선택]] [[분류:SubClass 선택/2024]] [[분류:오수영]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59926</id>
		<title>틀:SemanticGraph</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59926"/>
		<updated>2026-01-12T00:40:14Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;100%&amp;quot; height=&amp;quot;640px&amp;quot; style=&amp;quot;border:0&amp;quot; src=&amp;quot;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key|}}}&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;전체화면&amp;quot; onclick=&amp;quot;location.href=&amp;#039;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key}}}&amp;#039;&amp;quot;&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==사용방법==&lt;br /&gt;
시맨틱 데이터베이스의 특정 노드를 중심으로 하는 네트워크 그래프를 출력하는 틀입니다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
{{SemanticGraph | key = }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:정보 틀|그래프]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59925</id>
		<title>틀:SemanticGraph</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59925"/>
		<updated>2026-01-12T00:39:23Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{#if:{{{key|}}}|&lt;br /&gt;
&amp;lt;h2&amp;gt;&amp;lt;span class=&amp;quot;mw-headline&amp;quot; id=&amp;quot;의미관계망&amp;quot;&amp;gt;의미관계망&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;100%&amp;quot; height=&amp;quot;640px&amp;quot; style=&amp;quot;border:0&amp;quot; src=&amp;quot;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key}}}&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;전체화면&amp;quot; onclick=&amp;quot;location.href=&amp;#039;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key}}}&amp;#039;&amp;quot;&amp;gt;  &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
|&amp;lt;!-- key가 없으면 아무것도 표시 안 함 --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==사용방법==&lt;br /&gt;
시맨틱 데이터베이스의 특정 노드를 중심으로 하는 네트워크 그래프를 출력하는 틀입니다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
{{SemanticGraph | key = }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:정보 틀|그래프]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59924</id>
		<title>틀:SemanticGraph</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59924"/>
		<updated>2026-01-12T00:39:08Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
&amp;lt;div class=&amp;quot;semantic-graph-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;graph-heading&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;mw-headline&amp;quot;&amp;gt;의미관계망&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p id=&amp;quot;graph-content&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;iframe id=&amp;quot;semantic-graph-iframe&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;640px&amp;quot; style=&amp;quot;border:0&amp;quot; src=&amp;quot;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key{{!}}|}}}&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;전체화면&amp;quot; onclick=&amp;quot;location.href=&amp;#039;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key}}}&amp;#039;&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function() {&lt;br /&gt;
  var iframe = document.getElementById(&amp;#039;semantic-graph-iframe&amp;#039;);&lt;br /&gt;
  var heading = document.getElementById(&amp;#039;graph-heading&amp;#039;);&lt;br /&gt;
  var content = document.getElementById(&amp;#039;graph-content&amp;#039;);&lt;br /&gt;
  var shown = false;&lt;br /&gt;
  &lt;br /&gt;
  function showGraph() {&lt;br /&gt;
    if (!shown) {&lt;br /&gt;
      heading.style.display = &amp;#039;&amp;#039;;&lt;br /&gt;
      content.style.display = &amp;#039;&amp;#039;;&lt;br /&gt;
      shown = true;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // iframe 로드 완료 후 2초 뒤에 표시 (데이터가 있다고 가정)&lt;br /&gt;
  iframe.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
    setTimeout(function() {&lt;br /&gt;
      try {&lt;br /&gt;
        var iframeWin = iframe.contentWindow;&lt;br /&gt;
        var iframeDoc = iframe.contentDocument {{!}}{{!}} iframeWin.document;&lt;br /&gt;
        &lt;br /&gt;
        // 내부 접근 가능하면 canvas/svg 체크&lt;br /&gt;
        if (iframeDoc.querySelector(&amp;#039;canvas&amp;#039;) {{!}}{{!}} &lt;br /&gt;
            iframeDoc.querySelector(&amp;#039;svg&amp;#039;) {{!}}{{!}} &lt;br /&gt;
            iframeDoc.querySelector(&amp;#039;.vis-network&amp;#039;)) {&lt;br /&gt;
          showGraph();&lt;br /&gt;
        }&lt;br /&gt;
      } catch(e) {&lt;br /&gt;
        // Cross-origin이면 일단 표시 (정상 데이터로 간주)&lt;br /&gt;
        showGraph();&lt;br /&gt;
      }&lt;br /&gt;
    }, 2000);&lt;br /&gt;
  });&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==사용방법==&lt;br /&gt;
시맨틱 데이터베이스의 특정 노드를 중심으로 하는 네트워크 그래프를 출력하는 틀입니다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
{{SemanticGraph | key = }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:정보 틀|그래프]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59923</id>
		<title>틀:SemanticGraph</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59923"/>
		<updated>2026-01-12T00:38:16Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;index.php?title=%ED%8B%80:SemanticGraph:437  GET https://app.vaquitalab.com/aistory/api/check?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key= net::ERR_FAILED 404 (Not Found)&lt;br /&gt;
(anonymous) @ index.php?title=%ED%8B%80:SemanticGraph:437&lt;br /&gt;
(anonymous) @ index.php?title=%ED%8B%80:SemanticGraph:467Understand this error&lt;br /&gt;
index.php?title=%ED%8B%80:SemanticGraph:448 fetch error: TypeError: Failed to fetch&lt;br /&gt;
    at index.php?title=%ED%8B%80:SemanticGraph:437:3&lt;br /&gt;
    at index.php?title=%ED%8B%80:SemanticGraph:467:3&lt;br /&gt;
web-client-content-script.js:2 Uncaught TypeError: Failed to execute &amp;#039;observe&amp;#039; on &amp;#039;MutationObserver&amp;#039;: parameter 1 is not of type &amp;#039;Node&amp;#039;.&lt;br /&gt;
    at HTMLIFrameElement.&amp;lt;anonymous&amp;gt; (web-client-content-script.js:2:2350937)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==사용방법==&lt;br /&gt;
시맨틱 데이터베이스의 특정 노드를 중심으로 하는 네트워크 그래프를 출력하는 틀입니다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
{{SemanticGraph | key = }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:정보 틀|그래프]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59922</id>
		<title>틀:SemanticGraph</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59922"/>
		<updated>2026-01-12T00:37:43Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
&amp;lt;div id=&amp;quot;semantic-graph-container&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;iframe id=&amp;quot;semantic-graph-iframe&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;640px&amp;quot; style=&amp;quot;border:0&amp;quot; src=&amp;quot;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key{{!}}|}}}&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;전체화면&amp;quot; onclick=&amp;quot;location.href=&amp;#039;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key}}}&amp;#039;&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function() {&lt;br /&gt;
  var iframe = document.getElementById(&amp;#039;semantic-graph-iframe&amp;#039;);&lt;br /&gt;
  var container = document.getElementById(&amp;#039;semantic-graph-container&amp;#039;);&lt;br /&gt;
  var iframeSrc = iframe.src;&lt;br /&gt;
  &lt;br /&gt;
  // API 엔드포인트로 데이터 존재 여부 확인&lt;br /&gt;
  fetch(iframeSrc.replace(&amp;#039;/story01?&amp;#039;, &amp;#039;/api/check?&amp;#039;))&lt;br /&gt;
    .then(function(response) {&lt;br /&gt;
      return response.text();&lt;br /&gt;
    })&lt;br /&gt;
    .then(function(data) {&lt;br /&gt;
      // 응답이 비어있거나 에러면 숨김&lt;br /&gt;
      if (!data {{!}}{{!}} data.length &amp;lt; 100) {&lt;br /&gt;
        hideGraphSection();&lt;br /&gt;
      }&lt;br /&gt;
    })&lt;br /&gt;
    .catch(function(error) {&lt;br /&gt;
      console.log(&amp;#039;fetch error:&amp;#039;, error);&lt;br /&gt;
      // fetch 실패시에도 숨기지 않음 (네트워크 오류일 수 있음)&lt;br /&gt;
    });&lt;br /&gt;
  &lt;br /&gt;
  function hideGraphSection() {&lt;br /&gt;
    var pTag = container.closest(&amp;#039;p&amp;#039;);&lt;br /&gt;
    if (pTag) {&lt;br /&gt;
      pTag.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
      &lt;br /&gt;
      var prevElement = pTag.previousElementSibling;&lt;br /&gt;
      while (prevElement) {&lt;br /&gt;
        if (prevElement.tagName === &amp;#039;H2&amp;#039;) {&lt;br /&gt;
          prevElement.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
        prevElement = prevElement.previousElementSibling;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==사용방법==&lt;br /&gt;
시맨틱 데이터베이스의 특정 노드를 중심으로 하는 네트워크 그래프를 출력하는 틀입니다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
{{SemanticGraph | key = }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:정보 틀|그래프]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59921</id>
		<title>틀:SemanticGraph</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59921"/>
		<updated>2026-01-12T00:36:49Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
&amp;lt;div id=&amp;quot;semantic-graph-container&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;iframe id=&amp;quot;semantic-graph-iframe&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;640px&amp;quot; style=&amp;quot;border:0&amp;quot; src=&amp;quot;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key{{!}}|}}}&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;전체화면&amp;quot; onclick=&amp;quot;location.href=&amp;#039;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key}}}&amp;#039;&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function() {&lt;br /&gt;
  var iframe = document.getElementById(&amp;#039;semantic-graph-iframe&amp;#039;);&lt;br /&gt;
  var container = document.getElementById(&amp;#039;semantic-graph-container&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  iframe.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
    setTimeout(function() {&lt;br /&gt;
      try {&lt;br /&gt;
        var iframeDoc = iframe.contentDocument {{!}}{{!}} iframe.contentWindow.document;&lt;br /&gt;
        var bodyContent = iframeDoc.body.innerHTML;&lt;br /&gt;
        &lt;br /&gt;
        // HTML 길이가 짧거나 특정 패턴이 있으면 에러로 간주&lt;br /&gt;
        if (bodyContent.length &amp;lt; 500 {{!}}{{!}} &lt;br /&gt;
            bodyContent.includes(&amp;#039;Simple Ontology Visualization&amp;#039;) {{!}}{{!}}&lt;br /&gt;
            bodyContent.includes(&amp;#039;vis.js Network&amp;#039;)) {&lt;br /&gt;
          hideGraphSection();&lt;br /&gt;
        }&lt;br /&gt;
      } catch(e) {&lt;br /&gt;
        // Cross-origin인 경우 접근 불가&lt;br /&gt;
        console.log(&amp;#039;iframe cross-origin&amp;#039;);&lt;br /&gt;
      }&lt;br /&gt;
    }, 1000);&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  iframe.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
    hideGraphSection();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  function hideGraphSection() {&lt;br /&gt;
    var pTag = container.closest(&amp;#039;p&amp;#039;);&lt;br /&gt;
    if (pTag) {&lt;br /&gt;
      pTag.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
      &lt;br /&gt;
      var prevElement = pTag.previousElementSibling;&lt;br /&gt;
      while (prevElement) {&lt;br /&gt;
        if (prevElement.tagName === &amp;#039;H2&amp;#039;) {&lt;br /&gt;
          prevElement.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
        prevElement = prevElement.previousElementSibling;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==사용방법==&lt;br /&gt;
시맨틱 데이터베이스의 특정 노드를 중심으로 하는 네트워크 그래프를 출력하는 틀입니다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
{{SemanticGraph | key = }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:정보 틀|그래프]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59920</id>
		<title>틀:SemanticGraph</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59920"/>
		<updated>2026-01-12T00:34:11Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
&amp;lt;iframe width=&amp;quot;100%&amp;quot; height=&amp;quot;640px&amp;quot; style=&amp;quot;border:0&amp;quot; src=&amp;quot;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key|}}}&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;전체화면&amp;quot; onclick=&amp;quot;location.href=&amp;#039;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key}}}&amp;#039;&amp;quot;&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==사용방법==&lt;br /&gt;
시맨틱 데이터베이스의 특정 노드를 중심으로 하는 네트워크 그래프를 출력하는 틀입니다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
{{SemanticGraph | key = }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:정보 틀|그래프]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59919</id>
		<title>틀:SemanticGraph</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59919"/>
		<updated>2026-01-12T00:33:12Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
&amp;lt;div id=&amp;quot;semantic-graph-container&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;iframe id=&amp;quot;semantic-graph-iframe&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;640px&amp;quot; style=&amp;quot;border:0&amp;quot; src=&amp;quot;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key{{!}}|}}}&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;전체화면&amp;quot; onclick=&amp;quot;location.href=&amp;#039;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key}}}&amp;#039;&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function() {&lt;br /&gt;
  var iframe = document.getElementById(&amp;#039;semantic-graph-iframe&amp;#039;);&lt;br /&gt;
  var container = document.getElementById(&amp;#039;semantic-graph-container&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  iframe.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
    try {&lt;br /&gt;
      var iframeDoc = iframe.contentDocument {{!}}{{!}} iframe.contentWindow.document;&lt;br /&gt;
      &lt;br /&gt;
      if (iframeDoc.title.includes(&amp;#039;404&amp;#039;) {{!}}{{!}} &lt;br /&gt;
          iframeDoc.body.innerHTML.includes(&amp;#039;404&amp;#039;) {{!}}{{!}}&lt;br /&gt;
          iframeDoc.body.innerHTML.length &amp;lt; 100) {&lt;br /&gt;
        hideGraphSection();&lt;br /&gt;
      }&lt;br /&gt;
    } catch(e) {&lt;br /&gt;
      fetch(iframe.src, {method: &amp;#039;HEAD&amp;#039;})&lt;br /&gt;
        .then(function(response) {&lt;br /&gt;
          if (!response.ok {{!}}{{!}} response.status === 404) {&lt;br /&gt;
            hideGraphSection();&lt;br /&gt;
          }&lt;br /&gt;
        })&lt;br /&gt;
        .catch(function() {&lt;br /&gt;
          hideGraphSection();&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  iframe.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
    hideGraphSection();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  function hideGraphSection() {&lt;br /&gt;
    var pTag = container.closest(&amp;#039;p&amp;#039;);&lt;br /&gt;
    if (pTag) {&lt;br /&gt;
      pTag.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
      &lt;br /&gt;
      var prevElement = pTag.previousElementSibling;&lt;br /&gt;
      while (prevElement) {&lt;br /&gt;
        if (prevElement.tagName === &amp;#039;H2&amp;#039;) {&lt;br /&gt;
          prevElement.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
        prevElement = prevElement.previousElementSibling;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==사용방법==&lt;br /&gt;
시맨틱 데이터베이스의 특정 노드를 중심으로 하는 네트워크 그래프를 출력하는 틀입니다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
{{SemanticGraph | key = }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:정보 틀|그래프]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59918</id>
		<title>틀:SemanticGraph</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:SemanticGraph&amp;diff=59918"/>
		<updated>2026-01-12T00:32:02Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
&amp;lt;div id=&amp;quot;semantic-graph-container&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;iframe id=&amp;quot;semantic-graph-iframe&amp;quot; width=&amp;quot;100%&amp;quot; height=&amp;quot;640px&amp;quot; style=&amp;quot;border:0&amp;quot; src=&amp;quot;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key|}}}&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;전체화면&amp;quot; onclick=&amp;quot;location.href=&amp;#039;https://app.vaquitalab.com/aistory/story01?server=tcp:encyves.aks.ac.kr&amp;amp;db=gwangju2025&amp;amp;project=gwangju&amp;amp;key={{{key}}}&amp;#039;&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
(function() {&lt;br /&gt;
  var iframe = document.getElementById(&amp;#039;semantic-graph-iframe&amp;#039;);&lt;br /&gt;
  var container = document.getElementById(&amp;#039;semantic-graph-container&amp;#039;);&lt;br /&gt;
  &lt;br /&gt;
  iframe.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
    try {&lt;br /&gt;
      // iframe 내용 접근 시도 (same-origin인 경우)&lt;br /&gt;
      var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;&lt;br /&gt;
      &lt;br /&gt;
      // 404 또는 에러 페이지 체크&lt;br /&gt;
      if (iframeDoc.title.includes(&amp;#039;404&amp;#039;) || &lt;br /&gt;
          iframeDoc.body.innerHTML.includes(&amp;#039;404&amp;#039;) ||&lt;br /&gt;
          iframeDoc.body.innerHTML.length &amp;lt; 100) {&lt;br /&gt;
        hideGraphSection();&lt;br /&gt;
      }&lt;br /&gt;
    } catch(e) {&lt;br /&gt;
      // Cross-origin인 경우 접근 불가, fetch로 체크&lt;br /&gt;
      fetch(iframe.src, {method: &amp;#039;HEAD&amp;#039;})&lt;br /&gt;
        .then(function(response) {&lt;br /&gt;
          if (!response.ok || response.status === 404) {&lt;br /&gt;
            hideGraphSection();&lt;br /&gt;
          }&lt;br /&gt;
        })&lt;br /&gt;
        .catch(function() {&lt;br /&gt;
          hideGraphSection();&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  // 에러 발생 시에도 숨김&lt;br /&gt;
  iframe.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
    hideGraphSection();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  function hideGraphSection() {&lt;br /&gt;
    // iframe이 포함된 p 태그 찾기&lt;br /&gt;
    var pTag = container.closest(&amp;#039;p&amp;#039;);&lt;br /&gt;
    if (pTag) {&lt;br /&gt;
      pTag.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
      &lt;br /&gt;
      // 이전 형제 요소 중 h2 찾기&lt;br /&gt;
      var prevElement = pTag.previousElementSibling;&lt;br /&gt;
      while (prevElement) {&lt;br /&gt;
        if (prevElement.tagName === &amp;#039;H2&amp;#039;) {&lt;br /&gt;
          prevElement.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
        prevElement = prevElement.previousElementSibling;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==사용방법==&lt;br /&gt;
시맨틱 데이터베이스의 특정 노드를 중심으로 하는 네트워크 그래프를 출력하는 틀입니다&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;width:500px&amp;quot;&amp;gt;&lt;br /&gt;
{{SemanticGraph | key = }}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:정보 틀|그래프]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B2%A0%EB%B9%84%EC%97%90%EB%A5%B4&amp;diff=59917</id>
		<title>베비에르</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B2%A0%EB%B9%84%EC%97%90%EB%A5%B4&amp;diff=59917"/>
		<updated>2025-12-29T02:40:02Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;베비에르&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=베비에르&lt;br /&gt;
|한자명=&lt;br /&gt;
|영문명=Verviers&lt;br /&gt;
|이칭=&lt;br /&gt;
|업종=&lt;br /&gt;
|사업자명=&lt;br /&gt;
|개업/폐업연도=1991년&lt;br /&gt;
|소재지=대한민국 광주광역시 서구 풍암중앙로 37&lt;br /&gt;
|위도(latitude)=35.125108&lt;br /&gt;
|경도(longitude)=126.8784621&lt;br /&gt;
|InfoURL=https://public.aks.ac.kr/~gwangju/wiki/index.php/베비에르&lt;br /&gt;
|iconURL=https://dh.aks.ac.kr/~metaArchive/gwangju/2024/베비에르.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[베비에르]](Verviers)는 1991년 설립된 광주 기반의 제빵 기업이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 판매 상품의 품목 및 특징 등 ==&lt;br /&gt;
&lt;br /&gt;
* [[광주광역시 서구]] [[월산동]]의 작은 동네 빵집으로 시작해 지금은 광주 10개 지점을 필두로 무안·전주 등 전국적으로 지점을 넓히고 있다.&lt;br /&gt;
* [[베비에르]]라는 이름의 뜻은 벨기에 전통빵 &amp;#039;까도드베비에르&amp;#039;에서 유래했다고 한다.&lt;br /&gt;
* 이스트를 사용하지 않고 유기농 밀가루와 유산균, 발효종을 사용한 친환경 빵을 만드는 게 특징이며, 매장마다 시식코너를 만들어 빵을 맛볼 수 있게 제공하는 마케팅으로 유명하다.&lt;br /&gt;
* 대표 메뉴로는 견과류와 팥소가 든 [[마왕파이]]를 꼽을 수 있는데, 대표메뉴 외에도 빵들이 전체적으로 맛이 좋다고 평가받는다.&lt;br /&gt;
* 창업주인 [[마옥천]] 대표는 2018년 한 TV프로그램에서 연 매출 100억 원대 성공을 일궈낸 스토리가 소개되며 실시간 검색어에 오르기도 했다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 광주광역시 서구&lt;br /&gt;
| 마왕파이&lt;br /&gt;
| 마옥천&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=베비에르}}&lt;br /&gt;
&lt;br /&gt;
== 이미지 ==&lt;br /&gt;
{{이미지스와이퍼&lt;br /&gt;
  | 1=https://gwangju-storyplatform.com/wiki/index.php/파일:베비에르-전경.jpeg&lt;br /&gt;
  | 2=https://gwangju-storyplatform.com/wiki/index.php/파일:베비에르-내부.jpeg&lt;br /&gt;
  | 3=https://gwangju-storyplatform.com/wiki/images/8/85/%EB%B2%A0%EB%B9%84%EC%97%90%EB%A5%B4-%EC%99%B8%EA%B4%80.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 동영상 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v=lzt4i-mbqfU&lt;br /&gt;
  | 2=https://www.youtube.com/watch?v=slRc42KCBMI&lt;br /&gt;
  | 3=https://www.youtube.com/embed/iNO7863fWQg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 지도 ==&lt;br /&gt;
{{구글지도 | 위도=35.125108| 경도=126.8784621| 줌=16 }}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 동아일보 || [광주/전남]“빵 하나 굽더라도 장인정신으로”(2013-11-08, 정승호 기자) || https://www.donga.com/news/article/all/20131107/58757155/1&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 국제신문 || 마옥천 대표, 제빵 인생 30년·연매출 100억원 성공 비결 보니…(2018-12-26, 이수환 기자) || http://www.kookje.co.kr/news2011/asp/newsbody.asp?code=0500&amp;amp;key=20181226.99099011202&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 이데일리 || &amp;#039;빵 하나로 100억 매출&amp;#039;…고졸·국내파 제빵사 성공을 굽다(2017-03-27, 박태진 기자) || https://www.edaily.co.kr/news/read?newsId=02640406615864304&amp;amp;mediaCodeNo=257&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 광주일보 || [2019 광주 명장-제과·제빵 부문 ‘베비에르’ 마옥천 대표] “36년 제빵 ‘열정’을 구워내죠”(2019-12-20, 유연재 기자) || http://kwangju.co.kr/article.php?aid=1576785000685441028&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || (사)기능한국인 || 기능한국인리스트 마옥천 || http://koreanmaster.co.kr/sub/sub02_01.php?boardid=people&amp;amp;mode=view&amp;amp;idx=59&amp;amp;sk=&amp;amp;sw=&amp;amp;offset=&amp;amp;category=2017&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || 유튜브/여수MBCPrime || [다큐에세이16-1] 행복을 굽는 빵집 (베비에르-마옥천 쉐프) || https://www.youtube.com/watch?v=lzt4i-mbqfU&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || 유튜브/광주MBC || 전국 빵덕후들 빵지순례하게 하는 제빵기업-베비에르 || https://www.youtube.com/watch?v=slRc42KCBMI&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || [https://www.youtube.com/channel/UCU_UTpm5bYFNVabDs2HVCBA 흥미로운가] || 흥미로 쇼츠(shorts) - 베비에르 || https://www.youtube.com/embed/iNO7863fWQg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 베비에르  외관 || https://gwangju-storyplatform.com/wiki/index.php/파일:베비에르-전경.jpeg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 베비에르  내부 || https://gwangju-storyplatform.com/wiki/index.php/파일:베비에르-내부.jpeg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 광주인문스토리플랫폼사업단] || 베비에르 외관 || https://gwangju-storyplatform.com/wiki/images/8/85/%EB%B2%A0%EB%B9%84%EC%97%90%EB%A5%B4-%EC%99%B8%EA%B4%80.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 마옥천, 『마옥천, 빵을 맛으로 이야기하다』, 디자인 이애드, 2018. || http://www.riss.kr/link?id=M15264781&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 마옥천, 『장사의 달인 마옥천 : 30년 제빵의 기록』, 디자인 이애드, 2019. || http://www.riss.kr/link?id=M15579779&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[마옥천]] ||  ||  || 대표&lt;br /&gt;
|-&lt;br /&gt;
| [[마옥천]] || [[이달의_기능한국인]] ||  ||  || 선정&lt;br /&gt;
|-&lt;br /&gt;
| [[마옥천]] || [[광주광역시_명장]] ||  ||  || 선정&lt;br /&gt;
|-&lt;br /&gt;
| [[마옥천]] || [[광주고등학교]] ||  ||  || 출신학교&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[하모니제과점]] ||  ||  || 베비에르의 전신 제과점&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[베비에르_팥_공장]] ||  ||  || 전 지점에 제공되는 팥 제조 공장 운영&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[마왕파이]] ||  ||  || 대표메뉴&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[롱소세지베이글]] ||  ||  || 대표메뉴&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[바게트토스트]] ||  ||  || 대표메뉴&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[궁전제과]] ||  ||  || 또 다른 광주의 향토 제과점&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[까도드베비에르]] ||  ||  || 이름의 유래&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Agent]] [[분류:Agent/2022]] [[분류:Store]] [[분류:Store/2022]] [[분류:김민성]] [[분류:김서윤]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B2%A0%EB%B9%84%EC%97%90%EB%A5%B4&amp;diff=59916</id>
		<title>베비에르</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B2%A0%EB%B9%84%EC%97%90%EB%A5%B4&amp;diff=59916"/>
		<updated>2025-12-29T02:39:48Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;베비에르&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=베비에르&lt;br /&gt;
|한자명=&lt;br /&gt;
|영문명=Verviers&lt;br /&gt;
|이칭=&lt;br /&gt;
|업종=&lt;br /&gt;
|사업자명=&lt;br /&gt;
|개업/폐업연도=1991년&lt;br /&gt;
|소재지=대한민국 광주광역시 서구 풍암중앙로 37&lt;br /&gt;
|위도(latitude)=35.125108&lt;br /&gt;
|경도(longitude)=126.8784621&lt;br /&gt;
|InfoURL=https://public.aks.ac.kr/~gwangju/wiki/index.php/베비에르&lt;br /&gt;
|iconURL=https://dh.aks.ac.kr/~metaArchive/gwangju/2024/베비에르.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[베비에르]](Verviers)는 1991년 설립된 광주 기반의 제빵 기업이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 판매 상품의 품목 및 특징 등 ==&lt;br /&gt;
&lt;br /&gt;
* [[광주광역시 서구]] [[월산동]]의 작은 동네 빵집으로 시작해 지금은 광주 10개 지점을 필두로 무안·전주 등 전국적으로 지점을 넓히고 있다.&lt;br /&gt;
* [[베비에르]]라는 이름의 뜻은 벨기에 전통빵 &amp;#039;까도드베비에르&amp;#039;에서 유래했다고 한다.&lt;br /&gt;
* 이스트를 사용하지 않고 유기농 밀가루와 유산균, 발효종을 사용한 친환경 빵을 만드는 게 특징이며, 매장마다 시식코너를 만들어 빵을 맛볼 수 있게 제공하는 마케팅으로 유명하다.&lt;br /&gt;
* 대표 메뉴로는 견과류와 팥소가 든 [[마왕파이]]를 꼽을 수 있는데, 대표메뉴 외에도 빵들이 전체적으로 맛이 좋다고 평가받는다.&lt;br /&gt;
* 창업주인 [[마옥천]] 대표는 2018년 한 TV프로그램에서 연 매출 100억 원대 성공을 일궈낸 스토리가 소개되며 실시간 검색어에 오르기도 했다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 광주광역시 서구&lt;br /&gt;
| 마왕파이&lt;br /&gt;
| 마옥천&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=베비에르}}&lt;br /&gt;
&lt;br /&gt;
== 지도 ==&lt;br /&gt;
{{구글지도 | 위도=35.125108| 경도=126.8784621| 줌=16 }}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 동아일보 || [광주/전남]“빵 하나 굽더라도 장인정신으로”(2013-11-08, 정승호 기자) ||   https://www.donga.com/news/article/all/20131107/58757155/1&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 국제신문 || 마옥천 대표, 제빵 인생 30년·연매출 100억원 성공 비결 보니…(2018-12-26, 이수환 기자) ||  http://www.kookje.co.kr/news2011/asp/newsbody.asp?code=0500&amp;amp;key=20181226.99099011202&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 이데일리 || &amp;#039;빵 하나로 100억 매출&amp;#039;…고졸·국내파 제빵사 성공을 굽다(2017-03-27, 박태진 기자) ||    https://www.edaily.co.kr/news/read?newsId=02640406615864304&amp;amp;mediaCodeNo=257&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 광주일보 || [2019 광주 명장-제과·제빵 부문 ‘베비에르’ 마옥천 대표] “36년 제빵 ‘열정’을 구워내죠”(2019-12-20, 유연재 기자) ||  http://kwangju.co.kr/article.php?aid=1576785000685441028&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || (사)기능한국인 || 기능한국인리스트 마옥천 || http://koreanmaster.co.kr/sub/sub02_01.php?boardid=people&amp;amp;mode=view&amp;amp;idx=59&amp;amp;sk=&amp;amp;sw=&amp;amp;offset=&amp;amp;category=2017&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || 유튜브/여수MBCPrime || [다큐에세이16-1] 행복을 굽는 빵집 (베비에르-마옥천 쉐프) || https://www.youtube.com/watch?v=lzt4i-mbqfU&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || 유튜브/광주MBC || 전국 빵덕후들 빵지순례하게 하는 제빵기업-베비에르 ||  https://www.youtube.com/watch?v=slRc42KCBMI&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || [https://www.youtube.com/channel/UCU_UTpm5bYFNVabDs2HVCBA 흥미로운가] || 흥미로 쇼츠(shorts) - 베비에르 || https://www.youtube.com/embed/iNO7863fWQg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 베비에르  외관 || https://gwangju-storyplatform.com/wiki/index.php/파일:베비에르-전경.jpeg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 베비에르  내부 || https://gwangju-storyplatform.com/wiki/index.php/파일:베비에르-내부.jpeg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 광주인문스토리플랫폼사업단] || 베비에르 외관 || https://gwangju-storyplatform.com/wiki/images/8/85/%EB%B2%A0%EB%B9%84%EC%97%90%EB%A5%B4-%EC%99%B8%EA%B4%80.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 마옥천, 『마옥천, 빵을 맛으로 이야기하다』, 디자인 이애드, 2018. ||  http://www.riss.kr/link?id=M15264781&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 마옥천, 『장사의 달인 마옥천 : 30년 제빵의 기록』, 디자인 이애드, 2019. ||  http://www.riss.kr/link?id=M15579779&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[마옥천]] ||  ||  || 대표&lt;br /&gt;
|-&lt;br /&gt;
| [[마옥천]] || [[이달의_기능한국인]] ||  ||  || 선정&lt;br /&gt;
|-&lt;br /&gt;
| [[마옥천]] || [[광주광역시_명장]] ||  ||  || 선정&lt;br /&gt;
|-&lt;br /&gt;
| [[마옥천]] || [[광주고등학교]] ||  ||  || 출신학교&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[하모니제과점]] ||  ||  || 베비에르의 전신 제과점&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[베비에르_팥_공장]] ||  ||  || 전 지점에 제공되는 팥 제조 공장 운영&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[마왕파이]] ||  ||  || 대표메뉴&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[롱소세지베이글]] ||  ||  || 대표메뉴&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[바게트토스트]] ||  ||  || 대표메뉴&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[궁전제과]] ||  ||  || 또 다른 광주의 향토 제과점&lt;br /&gt;
|-&lt;br /&gt;
| [[베비에르]] || [[까도드베비에르]] ||  ||  || 이름의 유래&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Agent]] [[분류:Agent/2022]] [[분류:Store]] [[분류:Store/2022]] [[분류:김민성]] [[분류:김서윤]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B2%94%EB%8C%80%EC%88%9C&amp;diff=59915</id>
		<title>범대순</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B2%94%EB%8C%80%EC%88%9C&amp;diff=59915"/>
		<updated>2025-12-29T02:35:10Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;범대순&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=범대순&lt;br /&gt;
|한자명=范大錞&lt;br /&gt;
|영문명=Beom Dae-sun&lt;br /&gt;
|이칭=&lt;br /&gt;
|생몰년도=1930년~2014년&lt;br /&gt;
|성별=남성&lt;br /&gt;
|국적=대한민국&lt;br /&gt;
|출생지=광주&lt;br /&gt;
|위도(latitude)=&lt;br /&gt;
|경도(longitude)=&lt;br /&gt;
|InfoURL=https://public.aks.ac.kr/~gwangju/wiki/index.php/범대순&lt;br /&gt;
|iconURL=https://dh.aks.ac.kr/~metaArchive/gwangju/2024/범대순.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[범대순]]은 [[원탁시회]]의 창립을 주도한 광주 출신의 시인 이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 주요 활동/업적/저서/작품 등 ==&lt;br /&gt;
&lt;br /&gt;
* 1965년 시집『[[흑인 고수 루이의 북|흑인고수(黑人鼓手) 루이의 북]]』을 발간하며 등단하였다.&lt;br /&gt;
* 2013년 [[무등산]]에 관한 시 101편을 묶은 시집 『[[무등산(시집)|무등산]]』 을 출간하였다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 지역/사건/단체 내 역할 또는 영향력 ==&lt;br /&gt;
&lt;br /&gt;
* 전국 동인회 중 가장 오랜 역사를 지닌 [[원탁시회|원탁시]](지금의 &amp;#039;[[원탁시회]]&amp;#039;)의 동인이다. 초기 [[원탁시회|원탁시]]는 [[김현승]] 시인의 영향을 받으며 문학활동을 펼쳤다. 초대 회장을 맡은 [[범대순]]은 동인의 골격을 만들고, 1967년 5월 《[[원탁문학]]》 제1집을 시작으로 1969년 제10집까지 발간하였다.&lt;br /&gt;
* 한국시인협회 심의위원과 [[한국문인협회 광주광역시지회]] 회장 등을 역임하였다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 범대순&lt;br /&gt;
| 김현승&lt;br /&gt;
| 흑인 고수 루이의 북&lt;br /&gt;
| 원탁문학&lt;br /&gt;
| 무등산(시집)&lt;br /&gt;
| 원탁시회&lt;br /&gt;
| 한국문인협회 광주광역시지회&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=범대순}}&lt;br /&gt;
&lt;br /&gt;
== 이미지 ==&lt;br /&gt;
{{이미지스와이퍼&lt;br /&gt;
  | 1=https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순.jpg&lt;br /&gt;
  | 2=https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순_시비.jpg&lt;br /&gt;
  | 3=https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순시문학관.jpg&lt;br /&gt;
  | 4=https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순시문학관_안내판.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 디지털광주문화대전 || 범대순 || http://aks.ai/GC60002052&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 디지털광주문화대전 || 『무등산』 || http://aks.ai/GC60005134&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 디지털광주문화대전 || 「무등산 옛길」 || http://aks.ai/GC60005138&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 디지털광주문화대전 || 「무등산 서석대」 || http://aks.ai/GC60005137&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 남도일보 ||  || https://www.namdonews.com/news/articleView.html?idxno=354762&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 범대순 || https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 범대순 시비 || https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순_시비.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 범대순시문학관 || https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순시문학관.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 범대순시문학관 안내판 || https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순시문학관_안내판.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 범대순, 『눈이 내리면 산에 간다』, 전남대학교출판문화원, 2002. || https://www.google.com/search?q=9788975983276&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 범대순, 『파안대소』, 전남대학교출판문화원, 2002. || https://www.google.com/search?q=9788975983009&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 범대순, 『나는 디오니소스의 거시기 氣다』, 전남대학교출판문화원, 2005. || https://www.google.com/search?q=9788975985171&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 범대순, 『산하 山下』, 문학들, 2010. || https://www.google.com/search?q=9788992680462&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 범대순, 『가난에 대하여』, 문학들, 2011. || https://www.google.com/search?q=9788992680530&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 범대순, 『길의 안부를 묻다』, 작은숲, 2013. || https://www.google.com/search?q=9788997581238&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 범대순, 『무등산』, 문학, 2013. || https://www.google.com/search?q=9788992680769&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 김동근, 『범대순의 시와 시론』, 국학자료원, 2017. || https://www.google.com/search?q=9791188499274&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 최혜경, 「‘기계’ 이후, 자율적 인간의 행복 찾기 – 범대순의 기계시론에 나타난 감성 인식의 견지에서」, 『건지인문학』no.20, 전북대학교 인문학연구소, 2017. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002279760&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 김동근, 「범대순 시론의 의미구조」, 『호남학』no.62, 전남대학교 호남학연구원, 2017. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002302854&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
| [[김현승]] || [[범대순]] || hasDisciple ||  || 김현승은 제자 범대순이 있다 ↔ 범대순은 스승 김현승이 있다  (제자 ~가 있다)&lt;br /&gt;
|-&lt;br /&gt;
| [[흑인 고수 루이의 북]] || [[범대순]] || creator || 1965년 출간(등단 시집) || 흑인고수 루이의 북의 창작자는 범대순이다 (~의 창작자이다)&lt;br /&gt;
|-&lt;br /&gt;
| [[원탁문학]] || [[범대순]] || editor || 제1집~제10집 || 원탁문학은 범대순이 발간하였다 (~의 편집인이다)&lt;br /&gt;
|-&lt;br /&gt;
| [[무등산(시집)]] || [[범대순]] || creator || 2013년 출간 || 범대순-무등산의 창작자는 범대순이다 (~의 창작자이다)&lt;br /&gt;
|-&lt;br /&gt;
| [[범대순]] || [[원탁시회]] || isMemberOf || 초기 멤버이자 원탁시회 초대 회장 || 범대순은 원탁시회의 멤버이다 (~의 멤버이다)&lt;br /&gt;
|-&lt;br /&gt;
| [[범대순]] || [[한국문인협회 광주광역시지회]] || isMemberOf || 회장 || 범대순은 한국문인협회 광주광역시지회의 멤버이다 (~의 멤버이다)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Agent]] [[분류:Agent/2024]] [[분류:Person]] [[분류:Person/2024]] [[분류:이하루]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B2%94%EB%8C%80%EC%88%9C&amp;diff=59914</id>
		<title>범대순</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B2%94%EB%8C%80%EC%88%9C&amp;diff=59914"/>
		<updated>2025-12-29T02:35:02Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;범대순&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=범대순&lt;br /&gt;
|한자명=范大錞	&lt;br /&gt;
|영문명=Beom Dae-sun	&lt;br /&gt;
|이칭=&lt;br /&gt;
|생몰년도=1930년~2014년&lt;br /&gt;
|성별=남성&lt;br /&gt;
|국적=대한민국&lt;br /&gt;
|출생지=광주&lt;br /&gt;
|위도(latitude)=&lt;br /&gt;
|경도(longitude)=&lt;br /&gt;
|InfoURL=https://public.aks.ac.kr/~gwangju/wiki/index.php/범대순&lt;br /&gt;
|iconURL=https://dh.aks.ac.kr/~metaArchive/gwangju/2024/범대순.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[범대순]]은 [[원탁시회]]의 창립을 주도한 광주 출신의 시인 이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 주요 활동/업적/저서/작품 등 ==&lt;br /&gt;
&lt;br /&gt;
* 1965년 시집『[[흑인 고수 루이의 북|흑인고수(黑人鼓手) 루이의 북]]』을 발간하며 등단하였다.&lt;br /&gt;
* 2013년 [[무등산]]에 관한 시 101편을 묶은 시집 『[[무등산(시집)|무등산]]』 을 출간하였다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 지역/사건/단체 내 역할 또는 영향력 ==&lt;br /&gt;
&lt;br /&gt;
* 전국 동인회 중 가장 오랜 역사를 지닌 [[원탁시회|원탁시]](지금의 &amp;#039;[[원탁시회]]&amp;#039;)의 동인이다. 초기 [[원탁시회|원탁시]]는 [[김현승]] 시인의 영향을 받으며 문학활동을 펼쳤다. 초대 회장을 맡은 [[범대순]]은 동인의 골격을 만들고, 1967년 5월 《[[원탁문학]]》 제1집을 시작으로 1969년 제10집까지 발간하였다.&lt;br /&gt;
* 한국시인협회 심의위원과 [[한국문인협회 광주광역시지회]] 회장 등을 역임하였다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 범대순&lt;br /&gt;
| 김현승&lt;br /&gt;
| 흑인 고수 루이의 북&lt;br /&gt;
| 원탁문학&lt;br /&gt;
| 무등산(시집)&lt;br /&gt;
| 원탁시회&lt;br /&gt;
| 한국문인협회 광주광역시지회&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=범대순}}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
|웹리소스|| 디지털광주문화대전 || 범대순 ||http://aks.ai/GC60002052&lt;br /&gt;
|-&lt;br /&gt;
|웹리소스|| 디지털광주문화대전  || 『무등산』 ||http://aks.ai/GC60005134&lt;br /&gt;
|-&lt;br /&gt;
|웹리소스|| 디지털광주문화대전  || 「무등산 옛길」 ||http://aks.ai/GC60005138&lt;br /&gt;
|-&lt;br /&gt;
|웹리소스|| 디지털광주문화대전 || 「무등산 서석대」 ||http://aks.ai/GC60005137&lt;br /&gt;
|-&lt;br /&gt;
|웹리소스|| 남도일보 || &amp;quot;무등산은 나의 죽음에 이른 병이다&amp;quot; (2013-12-01, 임문철 기자) ||https://www.namdonews.com/news/articleView.html?idxno=354762&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 범대순 ||https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 범대순 시비 ||https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순_시비.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 범대순시문학관 ||https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순시문학관.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/ 광주 인문스토리 플랫폼] || 범대순시문학관 안내판 ||https://dh.aks.ac.kr/~metaArchive/gwangju/2023/범대순/범대순시문학관_안내판.jpg&lt;br /&gt;
|-&lt;br /&gt;
|간행물||단행본|| 범대순, 『눈이 내리면 산에 간다』, 전남대학교출판문화원, 2002.||https://www.google.com/search?q=9788975983276&lt;br /&gt;
|-&lt;br /&gt;
|간행물||단행본|| 범대순, 『파안대소』, 전남대학교출판문화원, 2002.|| https://www.google.com/search?q=9788975983009&lt;br /&gt;
|-&lt;br /&gt;
|간행물||단행본|| 범대순, 『나는 디오니소스의 거시기 氣다』, 전남대학교출판문화원, 2005.||https://www.google.com/search?q=9788975985171&lt;br /&gt;
|-&lt;br /&gt;
|간행물||단행본|| 범대순, 『산하 山下』, 문학들, 2010.||https://www.google.com/search?q=9788992680462&lt;br /&gt;
|-&lt;br /&gt;
|간행물||단행본|| 범대순, 『가난에 대하여』, 문학들, 2011.||https://www.google.com/search?q=9788992680530&lt;br /&gt;
|-&lt;br /&gt;
|간행물||단행본|| 범대순, 『길의 안부를 묻다』, 작은숲, 2013.||https://www.google.com/search?q=9788997581238&lt;br /&gt;
|-&lt;br /&gt;
|간행물||단행본|| 범대순, 『무등산』, 문학, 2013.||https://www.google.com/search?q=9788992680769&lt;br /&gt;
|-&lt;br /&gt;
|간행물||단행본|| 김동근, 『범대순의 시와 시론』, 국학자료원, 2017.||https://www.google.com/search?q=9791188499274&lt;br /&gt;
|-&lt;br /&gt;
|간행물||논문|| 최혜경, 「‘기계’ 이후, 자율적 인간의 행복 찾기 – 범대순의 기계시론에 나타난 감성 인식의 견지에서」, 『건지인문학』no.20, 전북대학교 인문학연구소, 2017.||https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002279760&lt;br /&gt;
|-&lt;br /&gt;
|간행물||논문|| 김동근, 「범대순 시론의 의미구조」, 『호남학』no.62, 전남대학교 호남학연구원, 2017.||https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002302854&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
|[[김현승]]||[[범대순]]|| hasDisciple ||  || 김현승은 제자 범대순이 있다 ↔ 범대순은 스승 김현승이 있다  (제자 ~가 있다)&lt;br /&gt;
|-&lt;br /&gt;
|[[흑인 고수 루이의 북]]||[[범대순]]||creator|| 1965년 출간(등단 시집) || 흑인고수 루이의 북의 창작자는 범대순이다 (~의 창작자이다)&lt;br /&gt;
|-&lt;br /&gt;
|[[원탁문학]]||[[범대순]]||editor|| 제1집~제10집  || 원탁문학은 범대순이 발간하였다 (~의 편집인이다)&lt;br /&gt;
|-&lt;br /&gt;
|[[무등산(시집)]]||[[범대순]]||creator|| 2013년 출간 || 범대순-무등산의 창작자는 범대순이다 (~의 창작자이다)&lt;br /&gt;
|-&lt;br /&gt;
|[[범대순]]||[[원탁시회]]||isMemberOf|| 초기 멤버이자 원탁시회 초대 회장 || 범대순은 원탁시회의 멤버이다 (~의 멤버이다)&lt;br /&gt;
|-&lt;br /&gt;
|[[범대순]]||[[한국문인협회 광주광역시지회]]|| isMemberOf || 회장 || 범대순은 한국문인협회 광주광역시지회의 멤버이다 (~의 멤버이다)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Agent]] [[분류:Agent/2023]] [[분류:Person]] [[분류:Person/2023]] [[분류:이하루]] [[분류:홍승현]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%B0%EC%9C%A0%EC%A7%80&amp;diff=59913</id>
		<title>배유지</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%B0%EC%9C%A0%EC%A7%80&amp;diff=59913"/>
		<updated>2025-12-29T02:34:07Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;배유지&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=배유지&lt;br /&gt;
|한자명=裵裕祉&lt;br /&gt;
|영문명=Eugene Bell&lt;br /&gt;
|이칭=유진벨&lt;br /&gt;
|생몰년도=1858년~1925년&lt;br /&gt;
|성별=남성&lt;br /&gt;
|국적=미국&lt;br /&gt;
|출생지=켄터키&lt;br /&gt;
|위도(latitude)=37.8393332&lt;br /&gt;
|경도(longitude)=-84.2700179&lt;br /&gt;
|InfoURL=https://public.aks.ac.kr/~gwangju/wiki/index.php/배유지&lt;br /&gt;
|iconURL=https://dh.aks.ac.kr/~metaArchive/gwangju/2024/배유지.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[배유지]](1858~1925)는 구한말 호남지방을 중심으로 선교 활동을 한 미국 [[남장로회]]에서 파송된 선교사 유진벨의 한국 이름이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 인간관계 ==&lt;br /&gt;
&lt;br /&gt;
* 언더우드 가문과 함께 대표적인 선교사 가문이다. 그의 딸 샬럿벨이 [[윌리엄 린튼]]과 결혼 후 21세 최연소 선교사로 한국에 들어와 부부가 함께 선교활동을 했다.&lt;br /&gt;
* 그녀의 셋째 아들 휴 린튼은 순천지역에서 교회 개척과 선교와 함께 결핵퇴치운동에 힘썼다. 그의 둘째와 막내까지 4대째 한국에서 선교사로 활동하고 있다.&lt;br /&gt;
* 함께 선교 활동을 했던 [[오기원|윌리엄 오웬]]이 죽은 뒤 그를 기억하기 위해 [[오웬기념각]]을 설립하였고, [[오웬기념각]]은 다양한 광주의 근대문화를 꽃 피운 곳이기도 하다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 주요 활동/업적/저서/작품 등 ==&lt;br /&gt;
&lt;br /&gt;
* 1896년 목포로 들어와 목포 나주지역에서 선교활동을 펼쳤으며, 목포정명학교와 영흥학교를 설립했다.&lt;br /&gt;
* 나주지역에서 [[배유지]]의 통역 겸 한국어 어학선생으로 활동한 이가 광주 첫 교회인 [[삼도교회]]를 설립한 [[이문오]]이다.&lt;br /&gt;
* 1904년 광주로 옮겨와 본격 선교활동에 나섰으며, 그 해 12월 25일 가족과 주민들을 초청해 예배를 올린 것이 [[양림동]] 지역 첫 교회인 [[광주양림교회]]의 시작이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 지역/사건/단체 내 역할 또는 영향력 ==&lt;br /&gt;
&lt;br /&gt;
* 이후에는 [[양림동]]을 주 활동 무대로 선교 활동과 의료 활동을 계속하였고, 지금까지도 [[양림역사문화마을]]에서는 그의 흔적을 곳곳에서 찾아볼 수 있다.&lt;br /&gt;
* [[숭일학교]], [[수피아여학교]]를 설립했으며, [[광주제중원]](현 [[광주기독병원]])을 재설립 하는 데 기여했다. 사망 후에는 [[양림동]] 뒷산에 안장됐다.&lt;br /&gt;
* [[수피아여학교]]에는 배유지 선교사를 추모하는 [[광주 구 수피아여학교 커티스 메모리얼 홀]]이 건립되어 그의 생애를 기리고 있다.&lt;br /&gt;
* 1995년 [[인세반]] 박사가 대북지원 사업을 목적으로 미국에 설립한 [[유진벨재단]]은 [[배유지]] 선교사의 선교사역 100주년을 기념하여 설립된 재단이다.&lt;br /&gt;
* 2000년에는 한국법인이 설립되었다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 남장로회&lt;br /&gt;
| 삼도교회&lt;br /&gt;
| 이문오&lt;br /&gt;
| 광주양림교회&lt;br /&gt;
| 양림역사문화마을&lt;br /&gt;
| 숭일학교&lt;br /&gt;
| 수피아여학교&lt;br /&gt;
| 광주제중원&lt;br /&gt;
| 광주기독병원&lt;br /&gt;
| 광주 구 수피아여학교 커티스 메모리얼 홀&lt;br /&gt;
| 오웬기념각&lt;br /&gt;
| 윌리엄 린튼&lt;br /&gt;
| 인세반&lt;br /&gt;
| 유진벨재단&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=배유지}}&lt;br /&gt;
&lt;br /&gt;
== 이미지 ==&lt;br /&gt;
{{이미지스와이퍼&lt;br /&gt;
  | 1=https://www.eugenebell.org:50008/images/sub/sub140_01_01.jpg&lt;br /&gt;
  | 2=https://gwangju-storyplatform.com/wiki/images/5/59/유진벨선교기념관.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 동영상 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v=ZhThLpcDBxs&lt;br /&gt;
  | 2=https://www.youtube.com/watch?v=ZKPT07Jkzzk&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 지도 ==&lt;br /&gt;
{{구글지도 | 위도=37.8393332| 경도=-84.2700179| 줌=16 }}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 한국민족문화대백과사전 || 유진벨재단(유진벨財團) || http://encykorea.aks.ac.kr/Contents/Item/E0073717&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 위키백과 || 유진 벨 재단 || https://ko.wikipedia.org/wiki/유진_벨_재단&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 교회용어사전 : 교파 및 역사 || 유진 벨 || https://terms.naver.com/entry.naver?cid=50762&amp;amp;docId=2379957&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 유진벨재단 || 유진벨재단 홈페이지 || https://www.eugenebell.org:50008/&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 고신뉴스KNC || 선교사열전 ⑬ 유진벨 선교사(Eugene Bell 1868~1925) (2022-03-16, 이용현 기자) || http://www.kosinnews.com/news/articleView.html?idxno=23977&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 바울선교회 || 유진벨 선교사(Eugene Bell / 1868~1925)(한국명 : 배유지) || http://www.bauri.org/board_yJSi78/22349&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || 유진벨재단 || 1대 : 배유지(유진벨) || https://www.eugenebell.org:50008/images/sub/sub140_01_01.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 유진벨선교기념관 || https://gwangju-storyplatform.com/wiki/images/5/59/유진벨선교기념관.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || L-ON 엘온 || 호남 선교의 아버지 유진벨 1부 || https://www.youtube.com/watch?v=ZhThLpcDBxs&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || 안양감리교회 || [마가특새선교사열전] 유진 벨 선교사 소개영상 || https://www.youtube.com/watch?v=ZKPT07Jkzzk&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 가스펠서브, 『교회용어사전(Glossary of Christianity) 양장본 Hardcover』, 생명의말씀사, 2013. || https://www.google.co.kr/search?q=9788904010448&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 인세반, 「유진벨 재단의 북한 의료지원사업」, 『헬스앤미션』 11, 한국가톨릭의료협회, 2008. || https://koreascience.kr/article/JAKO200875863697052.view?orgId=anpor&amp;amp;hide=breadcrumb,journalinfo&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 정용일, 「[유진벨재단 스테판 린튼 회장] 우리는 언제나 ‘손님’이자 ‘당나귀’ - “꿈을 작게 가져야 합니다”」, 『민족21』 88, 민족21, 2008. || https://www.dbpia.co.kr/Journal/articleDetail?nodeId=NODE01118435&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[수피아여학교]] ||  ||  || 설립에 관여함&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[광주 구 수피아여학교 커티스 메모리얼 홀]] ||  ||  || 추모하기 위해 건립됨&lt;br /&gt;
|-&lt;br /&gt;
| [[수피아여학교]] || [[광주 구 수피아여학교 커티스 메모리얼 홀]] ||  ||  || 소재지&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[숭일학교]] ||  ||  || 설립에 관여함&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[광주제중원]] ||  ||  || 설립에 관여함&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[배로티]] ||  ||  || 아내&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[샬럿벨]] ||  ||  || 부-녀&lt;br /&gt;
|-&lt;br /&gt;
| [[윌리엄 린튼]] || [[샬럿벨]] ||  ||  || 부부&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[오웬기념각]] ||  ||  || 설립함&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[광주양림교회]] ||  ||  || 광주에서 선교활동을 시작한 교회&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[유진벨]] ||  ||  || 영어본명&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[미국_남장로회]] ||  ||  || 배유지가  속한 교단&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[양림역사문화마을]] ||  ||  || 배유지의 선교활동 흔적이 남은 곳&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[유진벨재단]] ||  ||  || 그의 정신을 기리는 기념재단&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[유진벨선교기념관]] ||  ||  || 그의 기리는 기념관&lt;br /&gt;
|-&lt;br /&gt;
| [[양림역사문화마을]] || [[유진벨선교기념관]] ||  ||  || 소재지&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Agent]] [[분류:Agent/2024]] [[분류:Person]] [[분류:Person/2024]] [[분류:장은지]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%B0%EC%9C%A0%EC%A7%80&amp;diff=59912</id>
		<title>배유지</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%B0%EC%9C%A0%EC%A7%80&amp;diff=59912"/>
		<updated>2025-12-29T02:33:59Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;배유지&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=배유지&lt;br /&gt;
|한자명=裵裕祉&lt;br /&gt;
|영문명=Eugene Bell&lt;br /&gt;
|이칭=유진벨&lt;br /&gt;
|생몰년도=1858년~1925년&lt;br /&gt;
|성별=남성&lt;br /&gt;
|국적=미국&lt;br /&gt;
|출생지=켄터키&lt;br /&gt;
|위도(latitude)=37.8393332&lt;br /&gt;
|경도(longitude)=-84.2700179&lt;br /&gt;
|InfoURL=https://public.aks.ac.kr/~gwangju/wiki/index.php/배유지&lt;br /&gt;
|iconURL=https://dh.aks.ac.kr/~metaArchive/gwangju/2024/배유지.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[배유지]](1858~1925)는 구한말 호남지방을 중심으로 선교 활동을 한 미국 [[남장로회]]에서 파송된 선교사 유진벨의 한국 이름이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 인간관계 ==&lt;br /&gt;
&lt;br /&gt;
* 언더우드 가문과 함께 대표적인 선교사 가문이다. 그의 딸 샬럿벨이 [[윌리엄 린튼]]과 결혼 후 21세 최연소 선교사로 한국에 들어와 부부가 함께 선교활동을 했다.&lt;br /&gt;
* 그녀의 셋째 아들 휴 린튼은 순천지역에서 교회 개척과 선교와 함께 결핵퇴치운동에 힘썼다. 그의 둘째와 막내까지 4대째 한국에서 선교사로 활동하고 있다.&lt;br /&gt;
* 함께 선교 활동을 했던 [[오기원|윌리엄 오웬]]이 죽은 뒤 그를 기억하기 위해 [[오웬기념각]]을 설립하였고, [[오웬기념각]]은 다양한 광주의 근대문화를 꽃 피운 곳이기도 하다.&lt;br /&gt;
&lt;br /&gt;
== 주요 활동/업적/저서/작품 등 ==&lt;br /&gt;
&lt;br /&gt;
* 1896년 목포로 들어와 목포 나주지역에서 선교활동을 펼쳤으며, 목포정명학교와 영흥학교를 설립했다.&lt;br /&gt;
* 나주지역에서 [[배유지]]의 통역 겸 한국어 어학선생으로 활동한 이가 광주 첫 교회인 [[삼도교회]]를 설립한 [[이문오]]이다.&lt;br /&gt;
* 1904년 광주로 옮겨와 본격 선교활동에 나섰으며, 그 해 12월 25일 가족과 주민들을 초청해 예배를 올린 것이 [[양림동]] 지역 첫 교회인 [[광주양림교회]]의 시작이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 지역/사건/단체 내 역할 또는 영향력 ==&lt;br /&gt;
&lt;br /&gt;
* 이후에는 [[양림동]]을 주 활동 무대로 선교 활동과 의료 활동을 계속하였고, 지금까지도 [[양림역사문화마을]]에서는 그의 흔적을 곳곳에서 찾아볼 수 있다.&lt;br /&gt;
* [[숭일학교]], [[수피아여학교]]를 설립했으며, [[광주제중원]](현 [[광주기독병원]])을 재설립 하는 데 기여했다. 사망 후에는 [[양림동]] 뒷산에 안장됐다.&lt;br /&gt;
* [[수피아여학교]]에는 배유지 선교사를 추모하는 [[광주 구 수피아여학교 커티스 메모리얼 홀]]이 건립되어 그의 생애를 기리고 있다.&lt;br /&gt;
* 1995년 [[인세반]] 박사가 대북지원 사업을 목적으로 미국에 설립한 [[유진벨재단]]은 [[배유지]] 선교사의 선교사역 100주년을 기념하여 설립된 재단이다.&lt;br /&gt;
* 2000년에는 한국법인이 설립되었다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 남장로회&lt;br /&gt;
| 삼도교회&lt;br /&gt;
| 이문오&lt;br /&gt;
| 광주양림교회&lt;br /&gt;
| 양림역사문화마을&lt;br /&gt;
| 숭일학교&lt;br /&gt;
| 수피아여학교&lt;br /&gt;
| 광주제중원&lt;br /&gt;
| 광주기독병원&lt;br /&gt;
| 광주 구 수피아여학교 커티스 메모리얼 홀&lt;br /&gt;
| 오웬기념각&lt;br /&gt;
| 윌리엄 린튼&lt;br /&gt;
| 인세반&lt;br /&gt;
| 유진벨재단&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=배유지}}&lt;br /&gt;
&lt;br /&gt;
== 지도 ==&lt;br /&gt;
{{구글지도 | 위도=37.8393332| 경도=-84.2700179| 줌=16 }}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 한국민족문화대백과사전 || 유진벨재단(유진벨財團) ||  http://encykorea.aks.ac.kr/Contents/Item/E0073717&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 위키백과 || 유진 벨 재단 ||   https://ko.wikipedia.org/wiki/유진_벨_재단&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 교회용어사전 : 교파 및 역사 || 유진 벨 ||   https://terms.naver.com/entry.naver?cid=50762&amp;amp;docId=2379957&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 유진벨재단 || 유진벨재단 홈페이지 || https://www.eugenebell.org:50008/&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 고신뉴스KNC || 선교사열전 ⑬ 유진벨 선교사(Eugene Bell 1868~1925) (2022-03-16, 이용현 기자) ||   http://www.kosinnews.com/news/articleView.html?idxno=23977&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 바울선교회 || 유진벨 선교사(Eugene Bell / 1868~1925)(한국명 : 배유지) ||   http://www.bauri.org/board_yJSi78/22349&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || 유진벨재단 || 1대 : 배유지(유진벨) ||  https://www.eugenebell.org:50008/images/sub/sub140_01_01.jpg&lt;br /&gt;
|-&lt;br /&gt;
|이미지||[https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가]|| 유진벨선교기념관||https://gwangju-storyplatform.com/wiki/images/5/59/유진벨선교기념관.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || L-ON 엘온 || 호남 선교의 아버지 유진벨 1부 ||  https://www.youtube.com/watch?v=ZhThLpcDBxs&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || 안양감리교회 || [마가특새선교사열전] 유진 벨 선교사 소개영상 ||  https://www.youtube.com/watch?v=ZKPT07Jkzzk&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || 디지털 성지순례자 || [ 국내성지순례 | 유진벨 선교 기념관 ] 광주 / 양림동 / 선교사 / 로티 벨 / 오웬 / 양림교회 / 3.1운동 ||   https://www.youtube.com/watch?v=RNJUpDtlaQE&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 ||  단행본 ||가스펠서브, 『교회용어사전(Glossary of Christianity) 양장본 Hardcover』, 생명의말씀사, 2013. ||  https://www.google.co.kr/search?q=9788904010448&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 ||  논문 ||인세반, 「유진벨 재단의 북한 의료지원사업」, 『헬스앤미션』 11, 한국가톨릭의료협회, 2008. ||    https://koreascience.kr/article/JAKO200875863697052.view?orgId=anpor&amp;amp;hide=breadcrumb,journalinfo&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 ||  논문 ||정용일, 「[유진벨재단 스테판 린튼 회장] 우리는 언제나 ‘손님’이자 ‘당나귀’ - “꿈을 작게 가져야 합니다”」, 『민족21』 88, 민족21, 2008. ||   https://www.dbpia.co.kr/Journal/articleDetail?nodeId=NODE01118435&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[수피아여학교]] ||  ||  || 설립에 관여함&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[광주 구 수피아여학교 커티스 메모리얼 홀]] ||  ||  || 추모하기 위해 건립됨&lt;br /&gt;
|-&lt;br /&gt;
| [[수피아여학교]] || [[광주 구 수피아여학교 커티스 메모리얼 홀]] ||  ||  || 소재지&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[숭일학교]] ||  ||  || 설립에 관여함&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[광주제중원]] ||  ||  || 설립에 관여함&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[배로티]] ||  ||  || 아내&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[샬럿벨]] ||  ||  || 부-녀&lt;br /&gt;
|-&lt;br /&gt;
| [[윌리엄 린튼]] || [[샬럿벨]] ||  ||  || 부부&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[오웬기념각]] ||  ||  || 설립함&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[광주양림교회]] ||  ||  || 광주에서 선교활동을 시작한 교회&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[유진벨]] ||  ||  || 영어본명&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[미국_남장로회]] ||  ||  || 배유지가  속한 교단&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[양림역사문화마을]] ||  ||  || 배유지의 선교활동 흔적이 남은 곳&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[유진벨재단]] ||  ||  || 그의 정신을 기리는 기념재단&lt;br /&gt;
|-&lt;br /&gt;
| [[배유지]] || [[유진벨선교기념관]] ||  ||  || 그의 기리는 기념관&lt;br /&gt;
|-&lt;br /&gt;
| [[양림역사문화마을]] || [[유진벨선교기념관]] ||  ||  || 소재지&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Agent]] [[분류:Agent/2022]] [[분류:Person]] [[분류:Person/2022]] [[분류:장은지]] [[분류:김서윤]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59911</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59911"/>
		<updated>2025-12-29T02:31:43Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{#replace:{{{1|}}}|watch?v=|embed/}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{#replace:{{{2|}}}|watch?v=|embed/}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{#replace:{{{3|}}}|watch?v=|embed/}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{#replace:{{{4|}}}|watch?v=|embed/}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{#replace:{{{5|}}}|watch?v=|embed/}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{#replace:{{{6|}}}|watch?v=|embed/}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{#replace:{{{7|}}}|watch?v=|embed/}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{#replace:{{{8|}}}|watch?v=|embed/}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{#replace:{{{9|}}}|watch?v=|embed/}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{#replace:{{{10|}}}|watch?v=|embed/}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/watch?v=MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/watch?v=MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
* = 가 있을때 아래와 같이&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v=MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | 2=https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | 3=https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | 4=https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
1. 위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을 입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
2. 위 예제와 같이 = 가 있으면 노출이 안됩니다. = 가 있을때 순번= 이 필요합니다.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59910</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59910"/>
		<updated>2025-12-29T02:31:19Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{1|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{2|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{3|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{4|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{5|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{6|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{7|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{8|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{9|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{10|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v=MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | 2=https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | 3=https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | 4=https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | 5=https://www.youtube.com/watch?v=bNl_BXEK-mM&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v=MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
1. 위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을 입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
2. 위 예제와 같이 = 가 있으면 노출이 안됩니다. = 가 있을때 첫번째 영상과 같이 변경 필요합니다.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%95%ED%9A%A8%EC%84%A0&amp;diff=59909</id>
		<title>박효선</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%95%ED%9A%A8%EC%84%A0&amp;diff=59909"/>
		<updated>2025-12-29T02:25:57Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;박효선&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=박효선&lt;br /&gt;
|한자명=朴曉善&lt;br /&gt;
|영문명=&lt;br /&gt;
|이칭=&lt;br /&gt;
|생몰년도=1954년~1998년&lt;br /&gt;
|성별=남성&lt;br /&gt;
|국적=대한민국&lt;br /&gt;
|출생지=광주&lt;br /&gt;
|위도(latitude)=35.1594647&lt;br /&gt;
|경도(longitude)=126.8515034&lt;br /&gt;
|InfoURL=&lt;br /&gt;
|iconURL=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[박효선]](朴曉善,1954~1998)은 광주지역 문화운동 1세대로 연극연출가, 극작가 겸 배우이다.&lt;br /&gt;
* [[5.18민주화운동]]을 알리는 연극 활동에 주력해 ‘오월광대’로 불린다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 주요 활동/업적/저서/작품 등 ==&lt;br /&gt;
&lt;br /&gt;
* [[전남대학교]] 재학 중에 연극에 큰 관심을 보여 연극반과 [[들불야학]]에서 활동하며, 사회성 짙은 연극을 공연했다.&lt;br /&gt;
* 1979년 연극반과 탈춤반 후배들을 이끌고 &amp;#039;[[마당극단 광대]]’를 창단, 돼지 파동을 소재로 한 [[돼지풀이]] 마당굿을 공동 창작하고 연출해 큰 관심을 받았다.&lt;br /&gt;
* 1980년 당시 단원들과 [[5.18민주화운동]]에 참여, [[5.18민주화운동 항쟁지도부]] 홍보부장을 맡아 활동했으나 [[옛 전남도청]] 최후 항전일에는 도청에 남지 못했다. 이와 관련해 그는 “두 명은 죽었고([[윤상원]], [[박용준]]), 한 명은 미쳤고([[김영철]]), 한 명은 도망쳤다([[박효선]])”며, 괴로워했다고 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 지역/사건/단체 내 역할 또는 영향력 ==&lt;br /&gt;
&lt;br /&gt;
* 1983년 [[극단 토박이]]를 창단했으며, 1989년 극단에서 직영하는 ‘[[민들레소극장]]&amp;#039;을 개관했다. [[극단 토박이]]를 근거지로 20여 년 동안 광주 지역에서 활동했다.&lt;br /&gt;
* 극단 창단 후 배우 활동보다는 희곡 집필과 연출에 집중해 『[[금희의 오월(연극)]]』(1988년),  『[[모란꽃(연극)]]』(1993년), 『[[그대에게 보내는 편지]]』(1995년), 『[[청실홍실]]』(1993년) 등을 쓰고 연출했다. &amp;#039;&lt;br /&gt;
* 이들 작품에서 [[박효선]]은 평범한 시민들을 주인공으로 내세워 [[5.18민주화운동]]이 남긴 상처와 고통을 관객들이 이해하기를 바라며, [[5.18민주화운동]]을 지나간 역사로 치부하고 잊어버려서는 안 된다고 역설한다.&lt;br /&gt;
* 1996년과 1997년 [[광주MBC]] 오월다큐 드라마 &amp;#039;시민군 윤상원&amp;#039;과 &amp;#039;밀항탈출&amp;#039; 각본을 쓰고 출연했으며, 1997년 제2회 [[광주비엔날레]] 개막제를 총연출했다.&lt;br /&gt;
* 1998년 간암 판정을 받고 운명, [[국립5.18민주묘지]]에 안장됐다.&lt;br /&gt;
* 사단법인 민족극협회는 2022년 &amp;#039;[[박효선연극상]]&amp;#039;을 제정, 첫 수장작으로 극단 나무닭연구소의 『전태일- 네 이름이 무엇이냐』를 선정했다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 5.18민주화운동 항쟁지도부&lt;br /&gt;
| 전남대학교&lt;br /&gt;
| 들불야학&lt;br /&gt;
| 마당극단 광대&lt;br /&gt;
| 5.18민주화운동&lt;br /&gt;
| 돼지풀이&lt;br /&gt;
| 윤상원&lt;br /&gt;
| 박용준&lt;br /&gt;
| 김영철&lt;br /&gt;
| 극단 토박이&lt;br /&gt;
| 민들레소극장&lt;br /&gt;
| 금희의 오월&lt;br /&gt;
| 모란꽃(연극)&lt;br /&gt;
| 청실홍실&lt;br /&gt;
| 그대에게 보내는 편지&lt;br /&gt;
| 광주MBC&lt;br /&gt;
| 국립5.18민주묘지&lt;br /&gt;
| 박효선연극상&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=박효선}}&lt;br /&gt;
&lt;br /&gt;
== 이미지 ==&lt;br /&gt;
{{이미지스와이퍼&lt;br /&gt;
  | 1=https://gwangju-storyplatform.com/wiki/images/0/0a/박효선1.jpg&lt;br /&gt;
  | 2=https://gwangju-storyplatform.com/wiki/images/8/86/박효선2.jpg&lt;br /&gt;
  | 3=https://gwangju-storyplatform.com/wiki/images/9/9b/박효선-민들레소극장_간판1.JPG&lt;br /&gt;
  | 4=https://gwangju-storyplatform.com/wiki/images/0/07/박효선-민들레소극장_간판2.JPG&lt;br /&gt;
  | 5=https://gwangju-storyplatform.com/wiki/images/5/5a/박효선3.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 동영상 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v=bNl_BXEK-mM&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 지도 ==&lt;br /&gt;
{{구글지도 | 위도=35.1594647| 경도=126.8515034| 줌=16 }}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || (사)들불열사기념사업회 || 박효선 || https://deulbul.org/db_7/박효선&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 민주화운동기념사업회 || 박효선 || https://www.kdemo.or.kr/patriot/name/ㅂ/page/5/post/447&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 미디어오늘 || &amp;lt;모란꽃&amp;gt;의 연출가 박효선씨(1996-02-21, 김용필 기자) || http://www.mediatoday.co.kr/news/articleView.html?idxno=8662&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 한겨레 || 5·18 연극으로 진실 알렸던 오월 광대…‘박효선 연극상’ 첫 제정(2022-06-14, 정대하 기자) || https://www.hani.co.kr/arti/area/honam/1046896.html&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 광주일보 || 오월 연극 산증인 ‘토박이’ 동명동에 새 둥지(2016-10-13, 김미은 기자) || http://www.kwangju.co.kr/article.php?aid=1476284400588242007&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 광주일보 || ‘오월광대’ 박효선 전집 나온다(2016-03-22, 김미은 기자) || http://www.kwangju.co.kr/article.php?aid=1458572400573083007&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 무등일보 || 엄혹한 시절 첫 오월극, 22년만에 공연(2022-05-15, 김혜진 기자) || http://m.mdilbo.com/detail/NezemK/669496&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || 5.18기념재단 || (10분 만에 보는) 연극 &amp;#039;금희의 오월&amp;#039; || https://www.youtube.com/watch?v=bNl_BXEK-mM&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 극단 토박이 사무실에 걸린려 있는 박효선 연보 판넬 || https://gwangju-storyplatform.com/wiki/images/0/0a/박효선1.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 민들레소극장 현판 || https://gwangju-storyplatform.com/wiki/images/8/86/박효선2.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 민들레소극장 간판1 || https://gwangju-storyplatform.com/wiki/images/9/9b/박효선-민들레소극장_간판1.JPG&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 민들레소극장 간판2 || https://gwangju-storyplatform.com/wiki/images/0/07/박효선-민들레소극장_간판2.JPG&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 민들레소극장 극단 소박이 건물 || https://gwangju-storyplatform.com/wiki/images/5/5a/박효선3.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 김도일, 「박효선 희곡에 나타난 주제의식 연구 -희곡집 『금희의 오월』을 중심으로」, 『한민족어문학』 Vol.0 No.63, 한민족어문학회. 2013 || http://www.riss.kr/link?id=A99650159&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 이정민,「박효선 희곡에 나타난 ‘5·18 이후의 삶’ -&amp;lt;금희의 오월&amp;gt;, &amp;lt;모란꽃&amp;gt;, &amp;lt;청실홍실&amp;gt;을 중심으로」, 『Journal of Korean Culture(Journal of Korean Culture』 Vol.56, 한국어문학국제학술포럼, 2022 || http://www.riss.kr/link?id=A108058496&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 조아름,「박효선 희곡 연구」, 전남대학교 일반대학원(석사), 2016 || http://www.riss.kr/link?id=T14052708&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 박효선, 『박효선 전집1, 희곡-오월극』 , 연극과인간, 2016 || https://www.google.com/search?q=8957865829&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 박효선, 『박효선 전집2, 희곡-시대극』 , 연극과인간, 2016 || https://www.google.com/search?q=8957865837&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 박효선, 『박효선 전집3, 일기 수기』 , 연극과인간, 2016 || https://www.google.com/search?q=9788957865842&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
| [[5.18민주화운동]] || [[항쟁지도부]] ||  ||  || 홍보부장 직책 맡음&lt;br /&gt;
|-&lt;br /&gt;
| [[박효선]] || [[마당극단_광대]] ||  ||  || 창단을 주도&lt;br /&gt;
|-&lt;br /&gt;
| [[박효선]] || [[극단 토박이]] ||  ||  || 창단주도 대표 지냄&lt;br /&gt;
|-&lt;br /&gt;
| [[박효선]] || [[민들레소극장]] ||  ||  || 토박이 전용 소극장&lt;br /&gt;
|-&lt;br /&gt;
| [[박효선]] || [[금희의 오월(희곡)]] ||  ||  || 대표 희곡중 하나&lt;br /&gt;
|-&lt;br /&gt;
| [[박효선]] || [[윤상원]] ||  ||  || 민주화운동 동지&lt;br /&gt;
|-&lt;br /&gt;
| [[박효선]] || [[들불야학]] ||  ||  || 학장시절 활동한 단체&lt;br /&gt;
|-&lt;br /&gt;
| [[박효선]] || [[국립5.18민주묘지]] ||  ||  || 사망 후 안장된 곳&lt;br /&gt;
|-&lt;br /&gt;
| [[박효선]] || [[박효선연극상]] ||  ||  || 2022년 제정된 추모 연극상&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Agent]] [[분류:Agent/2024]] [[분류:Person]] [[분류:Person/2024]] [[분류:심재식]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59908</id>
		<title>틀:이미지스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59908"/>
		<updated>2025-12-29T02:22:10Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper image-swiper-container etb-image-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{1|}}}&amp;quot; alt=&amp;quot;{{{1|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{2|}}}&amp;quot; alt=&amp;quot;{{{2|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{3|}}}&amp;quot; alt=&amp;quot;{{{3|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{4|}}}&amp;quot; alt=&amp;quot;{{{4|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{5|}}}&amp;quot; alt=&amp;quot;{{{5|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{6|}}}&amp;quot; alt=&amp;quot;{{{6|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{7|}}}&amp;quot; alt=&amp;quot;{{{7|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{8|}}}&amp;quot; alt=&amp;quot;{{{8|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{9|}}}&amp;quot; alt=&amp;quot;{{{9|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{10|}}}&amp;quot; alt=&amp;quot;{{{10|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      var swiper = new Swiper(&amp;quot;.image-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 이미지 로딩 타임아웃 및 에러 처리&lt;br /&gt;
      var swiperContainer = document.querySelector(&amp;#039;.image-swiper-container&amp;#039;);&lt;br /&gt;
      document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-image&amp;#039;).forEach(function(img) {&lt;br /&gt;
        var timeout;&lt;br /&gt;
        var removeSlide = function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
&lt;br /&gt;
          // 슬라이드 제거&lt;br /&gt;
          var slideToRemove = img.closest(&amp;#039;.swiper-slide&amp;#039;);&lt;br /&gt;
          if (slideToRemove) {&lt;br /&gt;
            slideToRemove.remove();&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          swiper.update();&lt;br /&gt;
&lt;br /&gt;
          // 슬라이드 제거 후 남은 슬라이드 확인&lt;br /&gt;
          var remainingSlides = document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-slide&amp;#039;);&lt;br /&gt;
          console.log(&amp;#039;남은 슬라이드 개수:&amp;#039;, remainingSlides.length);&lt;br /&gt;
&lt;br /&gt;
          // 슬라이드가 하나도 없으면 스와이퍼 컨테이너 및 상위 h2 제거&lt;br /&gt;
          if (remainingSlides.length === 0 ) {&lt;br /&gt;
            if(swiperContainer){&lt;br /&gt;
              console.log(&amp;#039;슬라이드가 없어서 스와이퍼 컨테이너 제거&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
              // id가 &amp;quot;이미지&amp;quot;인 h2 찾기&lt;br /&gt;
              var imageHeading = document.querySelector(&amp;#039;#이미지&amp;#039;);&lt;br /&gt;
              if (imageHeading) {&lt;br /&gt;
                // h2 요소의 부모 찾기 (일반적으로 h2.mw-headline의 부모)&lt;br /&gt;
                var headingParent = imageHeading.closest(&amp;#039;h2&amp;#039;);&lt;br /&gt;
                if (headingParent) {&lt;br /&gt;
                  console.log(&amp;#039;이미지 섹션 제목도 제거&amp;#039;);&lt;br /&gt;
                  headingParent.remove();&lt;br /&gt;
                }&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              swiperContainer.remove();&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        // 1.5초 타임아웃 설정&lt;br /&gt;
        timeout = setTimeout(function() {&lt;br /&gt;
          if (!img.complete) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          } else if (img.naturalHeight === 0) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          }&lt;br /&gt;
        }, 1500);&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 성공 시 타임아웃 취소&lt;br /&gt;
        img.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 실패 시 슬라이드 제거&lt;br /&gt;
        img.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
          removeSlide();&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59907</id>
		<title>틀:이미지스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59907"/>
		<updated>2025-12-29T02:20:30Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper image-swiper-container etb-image-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{1|}}}&amp;quot; alt=&amp;quot;{{{1|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{2|}}}&amp;quot; alt=&amp;quot;{{{2|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{3|}}}&amp;quot; alt=&amp;quot;{{{3|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{4|}}}&amp;quot; alt=&amp;quot;{{{4|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{5|}}}&amp;quot; alt=&amp;quot;{{{5|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{6|}}}&amp;quot; alt=&amp;quot;{{{6|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{7|}}}&amp;quot; alt=&amp;quot;{{{7|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{8|}}}&amp;quot; alt=&amp;quot;{{{8|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{9|}}}&amp;quot; alt=&amp;quot;{{{9|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{10|}}}&amp;quot; alt=&amp;quot;{{{10|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      var swiper = new Swiper(&amp;quot;.image-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 이미지 로딩 타임아웃 및 에러 처리&lt;br /&gt;
      var swiperContainer = document.querySelector(&amp;#039;.image-swiper-container&amp;#039;);&lt;br /&gt;
      document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-image&amp;#039;).forEach(function(img) {&lt;br /&gt;
        var timeout;&lt;br /&gt;
        var removeSlide = function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
&lt;br /&gt;
          // 슬라이드 제거&lt;br /&gt;
          var slideToRemove = img.closest(&amp;#039;.swiper-slide&amp;#039;);&lt;br /&gt;
          if (slideToRemove) {&lt;br /&gt;
            slideToRemove.remove();&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          swiper.update();&lt;br /&gt;
&lt;br /&gt;
          // 슬라이드 제거 후 남은 슬라이드 확인&lt;br /&gt;
          var remainingSlides = document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-slide&amp;#039;);&lt;br /&gt;
          console.log(&amp;#039;남은 슬라이드 개수:&amp;#039;, remainingSlides.length);&lt;br /&gt;
&lt;br /&gt;
          // 슬라이드가 하나도 없으면 스와이퍼 컨테이너 제거&lt;br /&gt;
          if (remainingSlides.length === 0 ) {&lt;br /&gt;
						if(swiperContainer){&lt;br /&gt;
console.log(&amp;#039;슬라이드가 없어서 스와이퍼 컨테이너 제거&amp;#039;);&lt;br /&gt;
            swiperContainer.remove();&lt;br /&gt;
						}&lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        // 1.5초 타임아웃 설정&lt;br /&gt;
        timeout = setTimeout(function() {&lt;br /&gt;
          if (!img.complete) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          } else if (img.naturalHeight === 0) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          }&lt;br /&gt;
        }, 1500);&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 성공 시 타임아웃 취소&lt;br /&gt;
        img.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 실패 시 슬라이드 제거&lt;br /&gt;
        img.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
          removeSlide();&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59906</id>
		<title>틀:이미지스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59906"/>
		<updated>2025-12-29T02:19:29Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper image-swiper-container etb-image-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{1|}}}&amp;quot; alt=&amp;quot;{{{1|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{2|}}}&amp;quot; alt=&amp;quot;{{{2|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{3|}}}&amp;quot; alt=&amp;quot;{{{3|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{4|}}}&amp;quot; alt=&amp;quot;{{{4|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{5|}}}&amp;quot; alt=&amp;quot;{{{5|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{6|}}}&amp;quot; alt=&amp;quot;{{{6|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{7|}}}&amp;quot; alt=&amp;quot;{{{7|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{8|}}}&amp;quot; alt=&amp;quot;{{{8|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{9|}}}&amp;quot; alt=&amp;quot;{{{9|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{10|}}}&amp;quot; alt=&amp;quot;{{{10|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      var swiper = new Swiper(&amp;quot;.image-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 이미지 로딩 타임아웃 및 에러 처리&lt;br /&gt;
      var swiperContainer = document.querySelector(&amp;#039;.image-swiper-container&amp;#039;);&lt;br /&gt;
      document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-image&amp;#039;).forEach(function(img) {&lt;br /&gt;
        var timeout;&lt;br /&gt;
        var removeSlide = function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
&lt;br /&gt;
          // 슬라이드 제거&lt;br /&gt;
          var slideToRemove = img.closest(&amp;#039;.swiper-slide&amp;#039;);&lt;br /&gt;
          if (slideToRemove) {&lt;br /&gt;
            slideToRemove.remove();&lt;br /&gt;
          }&lt;br /&gt;
&lt;br /&gt;
          swiper.update();&lt;br /&gt;
&lt;br /&gt;
          // 슬라이드 제거 후 남은 슬라이드 확인&lt;br /&gt;
          var remainingSlides = document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-slide&amp;#039;);&lt;br /&gt;
          console.log(&amp;#039;남은 슬라이드 개수:&amp;#039;, remainingSlides.length);&lt;br /&gt;
&lt;br /&gt;
          // 슬라이드가 하나도 없으면 스와이퍼 컨테이너 제거&lt;br /&gt;
          if (remainingSlides.length === 0 &amp;amp;&amp;amp; swiperContainer) {&lt;br /&gt;
            console.log(&amp;#039;슬라이드가 없어서 스와이퍼 컨테이너 제거&amp;#039;);&lt;br /&gt;
            swiperContainer.remove();&lt;br /&gt;
          }&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        // 1.5초 타임아웃 설정&lt;br /&gt;
        timeout = setTimeout(function() {&lt;br /&gt;
          if (!img.complete) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          } else if (img.naturalHeight === 0) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          }&lt;br /&gt;
        }, 1500);&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 성공 시 타임아웃 취소&lt;br /&gt;
        img.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 실패 시 슬라이드 제거&lt;br /&gt;
        img.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
          removeSlide();&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59905</id>
		<title>틀:이미지스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59905"/>
		<updated>2025-12-29T02:16:23Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper image-swiper-container etb-image-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{1|}}}&amp;quot; alt=&amp;quot;{{{1|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{2|}}}&amp;quot; alt=&amp;quot;{{{2|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{3|}}}&amp;quot; alt=&amp;quot;{{{3|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{4|}}}&amp;quot; alt=&amp;quot;{{{4|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{5|}}}&amp;quot; alt=&amp;quot;{{{5|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{6|}}}&amp;quot; alt=&amp;quot;{{{6|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{7|}}}&amp;quot; alt=&amp;quot;{{{7|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{8|}}}&amp;quot; alt=&amp;quot;{{{8|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{9|}}}&amp;quot; alt=&amp;quot;{{{9|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{10|}}}&amp;quot; alt=&amp;quot;{{{10|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      var swiper = new Swiper(&amp;quot;.image-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 이미지 로딩 타임아웃 및 에러 처리&lt;br /&gt;
      var swiperContainer = document.querySelector(&amp;#039;.image-swiper-container&amp;#039;);&lt;br /&gt;
      var images = document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-image&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
      images.forEach(function(img) {&lt;br /&gt;
        var timeout;&lt;br /&gt;
        var removeSlide = function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
          img.closest(&amp;#039;.swiper-slide&amp;#039;).remove();&lt;br /&gt;
          swiper.update();&lt;br /&gt;
&lt;br /&gt;
          // 슬라이드가 하나도 없으면 스와이퍼 컨테이너 제거&lt;br /&gt;
          var remainingSlides = document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-slide&amp;#039;);&lt;br /&gt;
          if (remainingSlides.length === 0 &amp;amp;&amp;amp; swiperContainer) {&lt;br /&gt;
            swiperContainer.remove();&lt;br /&gt;
          }&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        // 1.5초 타임아웃 설정&lt;br /&gt;
        timeout = setTimeout(function() {&lt;br /&gt;
          if (!img.complete) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          } else if (img.naturalHeight === 0) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          }&lt;br /&gt;
        }, 1500);&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 성공 시 타임아웃 취소&lt;br /&gt;
        img.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 실패 시 슬라이드 제거&lt;br /&gt;
        img.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
          removeSlide();&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%95%EC%9A%A9%EC%B2%A0&amp;diff=59904</id>
		<title>박용철</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%95%EC%9A%A9%EC%B2%A0&amp;diff=59904"/>
		<updated>2025-12-29T02:14:34Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;박용철&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=박용철&lt;br /&gt;
|한자명=朴龍喆&lt;br /&gt;
|영문명=&lt;br /&gt;
|이칭=&lt;br /&gt;
|생몰년도=1904년~1938년&lt;br /&gt;
|성별=남성&lt;br /&gt;
|국적=대한민국&lt;br /&gt;
|출생지=광주&lt;br /&gt;
|위도(latitude)=35.15008220000001&lt;br /&gt;
|경도(longitude)=126.8559071&lt;br /&gt;
|InfoURL=https://public.aks.ac.kr/~gwangju/wiki/index.php/박용철&lt;br /&gt;
|iconURL=https://dh.aks.ac.kr/~metaArchive/gwangju/2024/박용철.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[박용철]](1904~1938)은 문학의 순수성을 표방한 시문학파로 활동한 광주출신의 시인이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 주요 활동/업적/저서/작품 등 ==&lt;br /&gt;
&lt;br /&gt;
* 1904년 6월 21일 광주 송정리에서 출생하여 1916년 광주공립보통학교를 졸업하였다.&lt;br /&gt;
* 1930년 [[김영랑]]과 함께 『시문학』을 창간하여 시 「[[떠나가는 배]]」, 「밤 기차에 그대를 보내고」 등을 발표하면서 본격적인 활동을 시작하였다.&lt;br /&gt;
* 1931년『문예월간』을, 1934년 [[김영랑]], [[김진섭]], 유치환 등과 함께 『문학』을 잇달아 발간하였으며, 이후로는 시 창작보다는 번역에 주력하고 평론가로도 활약했다.&lt;br /&gt;
* 1938년 5월 12일 후두결핵으로 사망하였다.&lt;br /&gt;
* 대표작  「[[떠나가는 배]]」는 가수 김수철이 「나도야 간다」라는 노래에서 일부 차용하면서 더 유명해졌다.&lt;br /&gt;
* [[광주공원 박용철 시비]], [[송정공원 박용철 시비]], [[용아생가 박용철 시비]], [[첨단생활체육공원 박용철 시비]], [[황룡친수공원 박용철 시비]] 등 [[광주광역시]] 곳곳에  [[박용철]] 시비가 세워져 있고, 건립된 시비에는 모두 이 시가 새겨져 있다.&lt;br /&gt;
* 그의 시「[[고향(시)]]」에서는 &amp;quot;고향을 찾아 무엇하리&amp;quot; 라는 역설적인 표현으로 고향 송정리에 대한 그리움을 드러내고 있다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 김영랑&lt;br /&gt;
| 떠나가는 배&lt;br /&gt;
| 김진섭&lt;br /&gt;
| 고향(시)&lt;br /&gt;
| 광주공원 박용철 시비&lt;br /&gt;
| 송정공원 박용철 시비&lt;br /&gt;
| 용아생가 박용철 시비&lt;br /&gt;
| 첨단생활체육공원 박용철 시비&lt;br /&gt;
| 황룡친수공원 박용철 시비&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=박용철}}&lt;br /&gt;
&lt;br /&gt;
== 이미지 ==&lt;br /&gt;
{{이미지스와이퍼&lt;br /&gt;
  | 1=http://digerati.aks.ac.kr/DhLab/2022/gwangju/image/이재열/광주공원_박용철_시비.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 동영상 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/embed/KSrsNMTUXto&lt;br /&gt;
  | 2=https://www.youtube.com/embed/-lRcYx2Ppyg?si=zk6a_lIjxPhf4yKZ&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 지도 ==&lt;br /&gt;
{{구글지도 | 위도=35.15008220000001| 경도=126.8559071| 줌=16 }}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 뉴시스 ||  || https://newsis.com/view/?id=NISX20201009_0001192260&amp;amp;cID=10809&amp;amp;pID=10800&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 서울신문 || [문학이 머문 풍경]광주 황룡강과 시인 박용철 (2004-09-02, 최치봉 기자) || https://n.news.naver.com/mnews/article/081/0000012119?sid=103&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 여행스케치 || 정지용·김윤식 첫시집 내 준 시문학파 시인, 송정리 박용철 생가 (2021-05-27, 박상대 기자) || http://www.ktsketch.co.kr/news/articleView.html?idxno=6583&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 광주공원 박용철 시비 || http://digerati.aks.ac.kr/DhLab/2022/gwangju/image/이재열/광주공원_박용철_시비.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || [https://www.youtube.com/channel/UCU_UTpm5bYFNVabDs2HVCBA 흥미로운가] || 박용철(용아생가) || https://www.youtube.com/embed/KSrsNMTUXto&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || [https://www.youtube.com/channel/UCU_UTpm5bYFNVabDs2HVCBA 광주 인문스토리 플랫폼 유튜브 채널] || 인문스토리쇼츠-용아생가 || https://www.youtube.com/embed/-lRcYx2Ppyg?si=zk6a_lIjxPhf4yKZ&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 조영복, 「박용철의 인쇄리터러쉬를 향한 捨身的 課業과 ‘외여지기’의 조선말 시의 이념」, 『국어국문학』188, 국어국문학회, 2019. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002511895&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 황선희, 「박용철 시와 시론에 나타나는 언어의식과 그 의미 ― 동양 문학론과의 연관성을 중심으로」, 『어문론집』vol.73, 중앙어문학회, 2018. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002336269&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 김영범, 「박용철 시론에서 ‘천재’의 의미 」, 『우리문학연구』68, 우리문학회, 2020. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002645445&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 이찬행, 「박용철 시 연구 - ‘숭고’를 중심으로」, 『한국문예비평연구』56, 한국현대문예비평학회, 2017. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002298152&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 김미미, 「박용철 시론 연구－ ‘순수’의 의미지평을 중심으로」, 『현대문학이론연구』57, 현대문학이론학회, 2014. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART001892153&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 김학동, 『박용철 評傳』, 새문사, 2017. || https://www.google.com/search?q=9788974114862&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
| [[광주_소촌동]] || [[송정리]] || hasOldName ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[광주공원_박용철_시비]] || [[떠나가는_배]] || hasInscription ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[광주공원_박용철_시비]] || [[광주공원]] || isLocatedIn ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[떠나가는_배]] || [[광주보통공립학교]] || 졸업하다 ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[떠나가는_배]] || [[박용철]] || creator ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[박용철]] || commemorates ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[광주공원_박용철_시비]] || includes ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[송정공원_박용철_시비]] || includes ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[용아생가_박용철_시비]] || includes ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[첨단생활체육공원_박용철_시비]] || includes ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[황룡친수공원_박용철_시비]] || includes ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[밤_기차에_그대를_보내고]] || [[박용철]] || creator ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[송정공원_박용철_시비]] || [[떠나가는_배]] || hasInscription ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[송정공원_박용철_시비]] || [[송정공원]] || isLocatedIn ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[고향(시)]] || [[송정리]] || documents ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[무제(시)]] || [[박용철]] || creator ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[무제(시)]] || [[송정리]] || mentions ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[용아생가]] || [[박용철]] || isBirthPlaceOf ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[용아생가]] || [[광주_소촌동]] || isLocatedIn ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[용아생가_박용철_시비]] || [[떠나가는_배]] || hasInscription ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[용아생가_박용철_시비]] || [[용아생가]] || isLocatedIn ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[첨단생활체육공원_박용철_시비]] || [[떠나가는_배]] || hasInscription ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[첨단생활체육공원_박용철_시비]] || [[첨단생활체육공원]] || isLocatedIn ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[황룡친수공원_박용철_시비]] || [[떠나가는_배]] || hasInscription ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[황룡친수공원_박용철_시비]] || [[황룡친수공원 ]] || isLocatedIn ||  || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Class 선택]] [[분류:Class 선택/2024]] [[분류:SubClass 선택]] [[분류:SubClass 선택/2024]] [[분류:이재열]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%95%EC%9A%A9%EC%B2%A0&amp;diff=59903</id>
		<title>박용철</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%95%EC%9A%A9%EC%B2%A0&amp;diff=59903"/>
		<updated>2025-12-29T02:04:42Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;박용철&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=박용철&lt;br /&gt;
|한자명=朴龍喆&lt;br /&gt;
|영문명=&lt;br /&gt;
|이칭=&lt;br /&gt;
|생몰년도=1904년~1938년&lt;br /&gt;
|성별=남성&lt;br /&gt;
|국적=대한민국&lt;br /&gt;
|출생지=광주&lt;br /&gt;
|위도(latitude)=35.15008220000001&lt;br /&gt;
|경도(longitude)=126.8559071&lt;br /&gt;
|InfoURL=https://public.aks.ac.kr/~gwangju/wiki/index.php/박용철&lt;br /&gt;
|iconURL=https://dh.aks.ac.kr/~metaArchive/gwangju/2024/박용철.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[박용철]](1904~1938)은 문학의 순수성을 표방한 시문학파로 활동한 광주출신의 시인이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 주요 활동/업적/저서/작품 등 ==&lt;br /&gt;
&lt;br /&gt;
* 1904년 6월 21일 광주 송정리에서 출생하여 1916년 광주공립보통학교를 졸업하였다.&lt;br /&gt;
* 1930년 [[김영랑]]과 함께 『시문학』을 창간하여 시 「[[떠나가는 배]]」, 「밤 기차에 그대를 보내고」 등을 발표하면서 본격적인 활동을 시작하였다.&lt;br /&gt;
* 1931년『문예월간』을, 1934년 [[김영랑]], [[김진섭]], 유치환 등과 함께 『문학』을 잇달아 발간하였으며, 이후로는 시 창작보다는 번역에 주력하고 평론가로도 활약했다.&lt;br /&gt;
* 1938년 5월 12일 후두결핵으로 사망하였다.&lt;br /&gt;
* 대표작  「[[떠나가는 배]]」는 가수 김수철이 「나도야 간다」라는 노래에서 일부 차용하면서 더 유명해졌다.&lt;br /&gt;
* [[광주공원 박용철 시비]], [[송정공원 박용철 시비]], [[용아생가 박용철 시비]], [[첨단생활체육공원 박용철 시비]], [[황룡친수공원 박용철 시비]] 등 [[광주광역시]] 곳곳에  [[박용철]] 시비가 세워져 있고, 건립된 시비에는 모두 이 시가 새겨져 있다.&lt;br /&gt;
* 그의 시「[[고향(시)]]」에서는 &amp;quot;고향을 찾아 무엇하리&amp;quot; 라는 역설적인 표현으로 고향 송정리에 대한 그리움을 드러내고 있다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 김영랑&lt;br /&gt;
| 떠나가는 배&lt;br /&gt;
| 김진섭&lt;br /&gt;
| 고향(시)&lt;br /&gt;
| 광주공원 박용철 시비&lt;br /&gt;
| 송정공원 박용철 시비&lt;br /&gt;
| 용아생가 박용철 시비&lt;br /&gt;
| 첨단생활체육공원 박용철 시비&lt;br /&gt;
| 황룡친수공원 박용철 시비&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=박용철}}&lt;br /&gt;
&lt;br /&gt;
== 이미지 ==&lt;br /&gt;
{{이미지스와이퍼&lt;br /&gt;
| http://digerati.aks.ac.kr/DhLab/2022/gwangju/image/이재열/광주공원_박용철_시비.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 동영상 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/embed/KSrsNMTUXto&lt;br /&gt;
  | 2=https://www.youtube.com/embed/-lRcYx2Ppyg?si=zk6a_lIjxPhf4yKZ&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 지도 ==&lt;br /&gt;
{{구글지도 | 위도=35.15008220000001| 경도=126.8559071| 줌=16 }}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 뉴시스 ||  || https://newsis.com/view/?id=NISX20201009_0001192260&amp;amp;cID=10809&amp;amp;pID=10800&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 서울신문 || [문학이 머문 풍경]광주 황룡강과 시인 박용철 (2004-09-02, 최치봉 기자) || https://n.news.naver.com/mnews/article/081/0000012119?sid=103&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 여행스케치 || 정지용·김윤식 첫시집 내 준 시문학파 시인, 송정리 박용철 생가 (2021-05-27, 박상대 기자) || http://www.ktsketch.co.kr/news/articleView.html?idxno=6583&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || [https://gwangju-storyplatform.com/wiki/index.php/대문 스토리파크 흥미로운가] || 광주공원 박용철 시비 || http://digerati.aks.ac.kr/DhLab/2022/gwangju/image/이재열/광주공원_박용철_시비.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || [https://www.youtube.com/channel/UCU_UTpm5bYFNVabDs2HVCBA 흥미로운가] || 박용철(용아생가) || https://www.youtube.com/embed/KSrsNMTUXto&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || [https://www.youtube.com/channel/UCU_UTpm5bYFNVabDs2HVCBA 광주 인문스토리 플랫폼 유튜브 채널] || 인문스토리쇼츠-용아생가 || https://www.youtube.com/embed/-lRcYx2Ppyg?si=zk6a_lIjxPhf4yKZ&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 조영복, 「박용철의 인쇄리터러쉬를 향한 捨身的 課業과 ‘외여지기’의 조선말 시의 이념」, 『국어국문학』188, 국어국문학회, 2019. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002511895&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 황선희, 「박용철 시와 시론에 나타나는 언어의식과 그 의미 ― 동양 문학론과의 연관성을 중심으로」, 『어문론집』vol.73, 중앙어문학회, 2018. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002336269&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 김영범, 「박용철 시론에서 ‘천재’의 의미 」, 『우리문학연구』68, 우리문학회, 2020. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002645445&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 이찬행, 「박용철 시 연구 - ‘숭고’를 중심으로」, 『한국문예비평연구』56, 한국현대문예비평학회, 2017. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002298152&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 김미미, 「박용철 시론 연구－ ‘순수’의 의미지평을 중심으로」, 『현대문학이론연구』57, 현대문학이론학회, 2014. || https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART001892153&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 김학동, 『박용철 評傳』, 새문사, 2017. || https://www.google.com/search?q=9788974114862&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
| [[광주_소촌동]] || [[송정리]] || hasOldName ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[광주공원_박용철_시비]] || [[떠나가는_배]] || hasInscription ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[광주공원_박용철_시비]] || [[광주공원]] || isLocatedIn ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[떠나가는_배]] || [[광주보통공립학교]] || 졸업하다 ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[떠나가는_배]] || [[박용철]] || creator ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[박용철]] || commemorates ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[광주공원_박용철_시비]] || includes ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[송정공원_박용철_시비]] || includes ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[용아생가_박용철_시비]] || includes ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[첨단생활체육공원_박용철_시비]] || includes ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[박용철_시비]] || [[황룡친수공원_박용철_시비]] || includes ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[밤_기차에_그대를_보내고]] || [[박용철]] || creator ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[송정공원_박용철_시비]] || [[떠나가는_배]] || hasInscription ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[송정공원_박용철_시비]] || [[송정공원]] || isLocatedIn ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[고향(시)]] || [[송정리]] || documents ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[무제(시)]] || [[박용철]] || creator ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[무제(시)]] || [[송정리]] || mentions ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[용아생가]] || [[박용철]] || isBirthPlaceOf ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[용아생가]] || [[광주_소촌동]] || isLocatedIn ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[용아생가_박용철_시비]] || [[떠나가는_배]] || hasInscription ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[용아생가_박용철_시비]] || [[용아생가]] || isLocatedIn ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[첨단생활체육공원_박용철_시비]] || [[떠나가는_배]] || hasInscription ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[첨단생활체육공원_박용철_시비]] || [[첨단생활체육공원]] || isLocatedIn ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[황룡친수공원_박용철_시비]] || [[떠나가는_배]] || hasInscription ||  || &lt;br /&gt;
|-&lt;br /&gt;
| [[황룡친수공원_박용철_시비]] || [[황룡친수공원 ]] || isLocatedIn ||  || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Class 선택]] [[분류:Class 선택/2024]] [[분류:SubClass 선택]] [[분류:SubClass 선택/2024]] [[분류:이재열]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%95%EC%84%A0%ED%99%8D&amp;diff=59902</id>
		<title>박선홍</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%EB%B0%95%EC%84%A0%ED%99%8D&amp;diff=59902"/>
		<updated>2025-12-29T02:01:38Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;!-- ETB_KEY_SEPARATOR --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hide-txt&amp;quot;&amp;gt;박선홍&amp;lt;/div&amp;gt;&lt;br /&gt;
{{기본정보테이블&lt;br /&gt;
|이름=박선홍&lt;br /&gt;
|한자명=朴墡洪&lt;br /&gt;
|영문명=&lt;br /&gt;
|이칭=&lt;br /&gt;
|생몰년도=1926년~2017년&lt;br /&gt;
|성별=남성&lt;br /&gt;
|국적=대한민국&lt;br /&gt;
|출생지=광주&lt;br /&gt;
|위도(latitude)=35.15008220000001&lt;br /&gt;
|경도(longitude)=126.8559071&lt;br /&gt;
|InfoURL=https://public.aks.ac.kr/~gwangju/wiki/index.php/박선홍&lt;br /&gt;
|iconURL=https://dh.aks.ac.kr/~metaArchive/gwangju/2024/박선홍.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 정의 및 개요 ==&lt;br /&gt;
* [[박선홍]](朴墡洪, 1926~2017)은 환경운동가로, 전 [[무등산공유화재단]] 이사장이기도 했다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 주요 활동/업적/저서/작품 등 ==&lt;br /&gt;
&lt;br /&gt;
* 근대도시 광주의 경제발전에 크게 기여했고, [[무등산]]을 연구하고 집필해 광주학의 기초를 다진 동시에 [[무등산]]의 산증인이다.&lt;br /&gt;
* [[박선홍]]은 1989년 [[무등산보호단체협의회]], 2001년 [[무등산공유화재단]] 설립을 주도하며 누구보다 [[무등산]]을 아끼고 사랑했다.&lt;br /&gt;
* 2001년 [[무등산 내셔널 트러스트 운동]]은 10만여 명이 참여해 약 16만 평을 매입하고 이를 광주시에 기증하면서 [[무등산]] 난개발을 막았다. &amp;lt;ref&amp;gt;광주광역시 서구문화원, 「박선홍」, 서구문화원, http://www.gjsgcc.or.kr/ko/35/view?SEQ=232. &amp;lt;/ref&amp;gt;&lt;br /&gt;
* 그가 [[금호문화]]에 연재했던 내용을 책으로 엮은 &amp;lt;[[광주1백년]]&amp;gt;(1994년 초판)과 &amp;lt;[[무등산]](2013년)&amp;gt;은 광주와 [[무등산]]을 알고자 하는 사람들에겐 교과서와 같은 책이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 인간관계 ==&lt;br /&gt;
&lt;br /&gt;
* [[박선홍]]의 [[무등산]] 보호운동은 1949년 [[박인천]](전 금호그룹회장)을 만나면서부터 본격적으로 시작된다.&lt;br /&gt;
* 두 사람은 무등산개발추진위원회를 구성하고 1958년 현지 조사를 하면서 대대적인 [[무등산]] 보존 캠페인을 시작한다.&lt;br /&gt;
* 이후 [[무등산]] 지킴이로써 [[무등산]]을 지키기 위한 다양한 활동을 펼친다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 지역/사건/단체 내 역할 또는 영향력 ==&lt;br /&gt;
&lt;br /&gt;
* [[박선홍]]은 광주에서 처음으로 보이스카우트를 창립하고 청소년 사회교육과 리더십 지도에 힘썼다.&lt;br /&gt;
* 1993년 모교인 조선대의 첫 관선 이사장에 임명돼 6년 동안 국내 최고의 학자들을 초빙해 의과대학 발전을 주도했고, 치과대학도 설립했다.&lt;br /&gt;
* 광주사회복지공동모금회를 만들어 사회적 약자 돕기에도 앞장섰다.&lt;br /&gt;
* [[광주상공회의소]] 상근 부회장을 지냈고 대통령 표창, 국민포상, 철탑산업훈장, 광주시민대상, 대한민국 산악대상 환경상 등을 받았다.&lt;br /&gt;
* 2017년 8월 9일 노환으로 세상을 떠나 [[광주영락공원]]에 묻혔다. &amp;lt;ref&amp;gt;이재호, 박승호, 「박선홍은 &amp;#039;人間 무등산&amp;#039;이었다」, 아주경제, https://www.ajunews.com/view/20210520080951132.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[광주문화재단]]은 [[박선홍 광주학술상]]을 통해 광주 지역의 역사, 문화, 사회 인문환경 등에 대한 연구를 활성화하는데 공로가 있는 사람을 선정해 시상하는데, 제1회 수상자로 향토지리연구가 [[김경수]](전남문화재전문위원, 향토지리연구소장]) 씨가 선정됐다.&lt;br /&gt;
&lt;br /&gt;
== 관련 항목 ==&lt;br /&gt;
{{관련항목태그&lt;br /&gt;
| 무등산공유화재단&lt;br /&gt;
| 무등산보호단체협의회&lt;br /&gt;
| 무등산 내셔널 트러스트 운동&lt;br /&gt;
| 광주영락공원&lt;br /&gt;
| 광주상공회의소&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 의미관계망 ==&lt;br /&gt;
{{SemanticGraph  | key=박선홍}}&lt;br /&gt;
&lt;br /&gt;
== 이미지 ==&lt;br /&gt;
{{이미지스와이퍼&lt;br /&gt;
| http://www.gjcf.or.kr/resources/img/upload/261/z67ap422928g03o.jpg&lt;br /&gt;
| https://flexible.img.hani.co.kr/flexible/normal/640/427/imgdb/original/2022/0619/20220619501548.jpg&lt;br /&gt;
| https://image.ajunews.com/content/image/2021/05/20/20210520081531758816.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 지도 ==&lt;br /&gt;
{{구글지도 | 위도=35.15008220000001| 경도=126.8559071| 줌=16 }}&lt;br /&gt;
&lt;br /&gt;
== 참고자료 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Type || style=&amp;quot;width:20%&amp;quot; | Resource || style=&amp;quot;width:35%&amp;quot; | Title/Index || style=&amp;quot;width:30%&amp;quot; | URL&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 광주광역시 서구문화원 || 박선홍 || http://www.gjsgcc.or.kr/ko/35/view?SEQ=232&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 동아일보 || 광주 1백년’ 쓴 구순의 향토사학자 || https://www.donga.com/news/article/all/20160508/77987955/1&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 한겨레신문 || 광주 근대사 기록한 박선홍 선생 기리는 학술상 첫 주인공은? || https://www.hani.co.kr/arti/area/honam/1047579.html&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 한겨레신문 || 광주 근대사 기록한 박선홍 선생 기리는 학술상 첫 주인공은? || https://www.hani.co.kr/arti/area/honam/1047579.html&lt;br /&gt;
|-&lt;br /&gt;
| 웹리소스 || 아주경제 || 박선홍은 &amp;#039;人間 무등산&amp;#039;이었다 || https://www.ajunews.com/view/20210520080951132&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || 광주문화재단 || 박선홍 || http://www.gjcf.or.kr/resources/img/upload/261/z67ap422928g03o.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 이미지 || 한겨레신문 || 박선홍 || https://flexible.img.hani.co.kr/flexible/normal/640/427/imgdb/original/2022/0619/20220619501548.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 동영상 || 아주경제 || 박선홍 || https://image.ajunews.com/content/image/2021/05/20/20210520081531758816.jpg&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 박선홍, 『무등산』, 광주문화재단, 2013. || https://www.google.com/search?q=9788997423323&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 단행본 || 광주광역시 서구문화원, 『양동시장에서 서창들녘 까지Ⅰ』, 서구문화원, 2017. || https://local.nculture.org/tl25f&lt;br /&gt;
|-&lt;br /&gt;
| 간행물 || 논문 || 신현숙, 「무등산 내셔널 트러스트운동 연구」, 『학위논문(석사)-전남대학교 대학원 문화재학협동과정』, 전남대학교, 2018. || http://www.riss.kr/link?id=T14748512&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 주석 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contextual Relations ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:15%&amp;quot; | Source || style=&amp;quot;width:15%&amp;quot; | Target || style=&amp;quot;width:20%&amp;quot; | Relation || style=&amp;quot;width:25%&amp;quot; | Attribute || style=&amp;quot;width:25%&amp;quot; | Remark(Note)&lt;br /&gt;
|-&lt;br /&gt;
| [[박선홍]] || [[박인천]] ||  ||  || 지인(전 금호그룹 회장)&lt;br /&gt;
|-&lt;br /&gt;
| [[박인천]] || [[금호아시아나그룹]] ||  ||  || A는 B의 전 회장&lt;br /&gt;
|-&lt;br /&gt;
| [[금호아시아나그룹]] || [[금호고속]] ||  ||  || 계열사&lt;br /&gt;
|-&lt;br /&gt;
| [[박선홍]] || [[무등산_지킴이]] ||  ||  || 별명&lt;br /&gt;
|-&lt;br /&gt;
| [[박선홍]] || [[무등산2013]] ||  ||  || 저서&lt;br /&gt;
|-&lt;br /&gt;
| [[박선홍]] || [[광주1백년]] ||  ||  || 저서&lt;br /&gt;
|-&lt;br /&gt;
| [[광주1백년]] || [[금호문화]] ||  ||  || 출판 전 연재한 잡지&lt;br /&gt;
|-&lt;br /&gt;
| [[박선홍]] || [[무등산_내셔널_트러스트_운동]] ||  ||  || 무등산 공유화운동&lt;br /&gt;
|-&lt;br /&gt;
| [[박선홍]] || [[무등산보호단체협의회]] ||  ||  || 무등산을 지키기 위한 단체연합&lt;br /&gt;
|-&lt;br /&gt;
| [[박선홍]] || [[무등산공유화재단]] ||  ||  || 무등산을 지키기 위해 설립&lt;br /&gt;
|-&lt;br /&gt;
| [[박선홍]] || [[박선홍_광주학술상]] ||  ||  || 선생의 뜻을 기리기 위해 제정&lt;br /&gt;
|-&lt;br /&gt;
| [[광주문화재단]] || [[박선홍_광주학술상]] ||  ||  || 상 B를 제정한 곳 A&lt;br /&gt;
|-&lt;br /&gt;
| [[박선홍_광주학술상]] || [[김경수]] ||  ||  || 1회 수상자&lt;br /&gt;
|-&lt;br /&gt;
| [[향토지리연구소]] || [[김경수]] ||  ||  || B는 A의 소장&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[분류:핵심항목]] [[분류:Class 선택]] [[분류:Class 선택/2024]] [[분류:SubClass 선택]] [[분류:SubClass 선택/2024]] [[분류:박종평]]&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59901</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59901"/>
		<updated>2025-12-29T01:21:30Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{1|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{2|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{3|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{4|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{5|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{6|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{7|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{8|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{9|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{10|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v=MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | 2=https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | 3=https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | 4=https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v=MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
1. 위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을 입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
2. 위 예제와 같이 = 가 있으면 노출이 안됩니다. = 가 있을때 첫번째 영상과 같이 변경 필요합니다.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59900</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59900"/>
		<updated>2025-12-29T01:20:49Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{1|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{2|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{3|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{4|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{5|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{6|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{7|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{8|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{9|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{10|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v=MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v=MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
1. 위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을 입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
2. 위 예제와 같이 = 가 있으면 노출이 안됩니다. = 가 있을때 첫번째 영상과 같이 변경 필요합니다.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59899</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59899"/>
		<updated>2025-12-29T01:20:04Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{1|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{2|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{3|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{4|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{5|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{6|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{7|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{8|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{9|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{10|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v-MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v-MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
1. 위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
		입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
2. 위 예제와 같이 = 가 있으면 노출이 안됩니다. = 가 있을때 첫번째 영상과 같이 변경 필요합니다.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59898</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59898"/>
		<updated>2025-12-29T01:19:14Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{1|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{2|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{3|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{4|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{5|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{6|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{7|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{8|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{9|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{10|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
1. 위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
		입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
2. 위 예제와 같이 = 가 있으면 노출이 안됩니다. = 가 있을때 첫번째 영상과 같이 변경 필요합니다.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59897</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59897"/>
		<updated>2025-12-29T01:18:01Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{1|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{2|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{3|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{4|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{5|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{6|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{7|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{8|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{9|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{10|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v-MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v-MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  1. 위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
     입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
	2. 위 예제와 같이 = 가 있으면 노출이 안됩니다. = 가 있을때 첫번째 영상과 같이 변경 필요합니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59896</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59896"/>
		<updated>2025-12-29T01:17:29Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{1|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{2|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{3|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{4|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{5|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{6|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{7|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{8|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{9|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{10|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v-MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v-MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  1. 위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
     입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
	2. 위 예제와 같이 = 가 있으면 노출이 안됩니다. = 가 있을때 첫번째 영상과 같이 변경 필요합니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59895</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59895"/>
		<updated>2025-12-29T01:13:54Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{1|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{2|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{3|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{4|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{5|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{6|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/watch?v-MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59894</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59894"/>
		<updated>2025-12-29T01:12:57Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{1|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{2|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{3|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{4|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{5|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#explode:{{#replace:{{{6|}}}|watch?v-|embed/}}|&amp;amp;|0}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v-MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | 2=https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | 3=https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | 4=https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59893</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59893"/>
		<updated>2025-12-29T01:00:14Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{1|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{2|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{3|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{4|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{5|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{6|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | 1=https://www.youtube.com/watch?v-MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | 2=https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | 3=https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | 4=https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59892</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59892"/>
		<updated>2025-12-29T00:59:12Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{1|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{2|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{3|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{4|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{5|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{6|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/watch?v-MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59891</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59891"/>
		<updated>2025-12-29T00:58:01Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{1|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{2|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{3|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{4|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{5|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{6|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/watch?v=MlM1fbaHZTQ&amp;amp;amp;list=RDMlM1fbaHZTQ&amp;amp;amp;start_radio=1&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59890</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59890"/>
		<updated>2025-12-29T00:57:04Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{1|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{2|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{3|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{4|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{5|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{6|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
&lt;br /&gt;
            // 기존 URL에서 ?와 &amp;amp; 모두 제거하고 깨끗한 embed URL만 추출&lt;br /&gt;
            let cleanUrl = iframe.src;&lt;br /&gt;
            const questionIndex = cleanUrl.indexOf(&amp;quot;?&amp;quot;);&lt;br /&gt;
            const ampIndex = cleanUrl.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (questionIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, questionIndex);&lt;br /&gt;
            } else if (ampIndex !== -1) {&lt;br /&gt;
              cleanUrl = cleanUrl.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            iframe.src = cleanUrl + &amp;quot;?enablejsapi=1&amp;quot;;&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59889</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59889"/>
		<updated>2025-12-29T00:54:31Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{1|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{2|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{3|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{4|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{5|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{6|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
            // &amp;amp; 이후 파라미터 제거&lt;br /&gt;
            const ampIndex = iframe.src.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
            if (ampIndex !== -1) {&lt;br /&gt;
              iframe.src = iframe.src.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;enablejsapi=1&amp;quot;)) {&lt;br /&gt;
              iframe.src =&lt;br /&gt;
                iframe.src +&lt;br /&gt;
                (iframe.src.includes(&amp;quot;?&amp;quot;) ? &amp;quot;&amp;amp;&amp;quot; : &amp;quot;?&amp;quot;) +&lt;br /&gt;
                &amp;quot;enablejsapi=1&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}} &lt;br /&gt;
== 템플릿 사용 예제 == &lt;br /&gt;
{{동영상스와이퍼 &lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c &lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59888</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59888"/>
		<updated>2025-12-29T00:54:02Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{1|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{2|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{3|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{4|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{5|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{6|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
            // &amp;amp; 이후 파라미터 제거&lt;br /&gt;
            const ampIndex = iframe.src.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
            if (ampIndex !== -1) {&lt;br /&gt;
              iframe.src = iframe.src.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;enablejsapi=1&amp;quot;)) {&lt;br /&gt;
              iframe.src =&lt;br /&gt;
                iframe.src +&lt;br /&gt;
                (iframe.src.includes(&amp;quot;?&amp;quot;) ? &amp;quot;&amp;amp;&amp;quot; : &amp;quot;?&amp;quot;) +&lt;br /&gt;
                &amp;quot;enablejsapi=1&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}} &lt;br /&gt;
== 템플릿 사용 예제 == &lt;br /&gt;
{{동영상스와이퍼 &lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1 &lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c &lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59887</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59887"/>
		<updated>2025-12-29T00:53:28Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{1|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{2|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{3|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{4|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{5|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{6|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
            // &amp;amp; 이후 파라미터 제거&lt;br /&gt;
            const ampIndex = iframe.src.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
            if (ampIndex !== -1) {&lt;br /&gt;
              iframe.src = iframe.src.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;enablejsapi=1&amp;quot;)) {&lt;br /&gt;
              iframe.src =&lt;br /&gt;
                iframe.src +&lt;br /&gt;
                (iframe.src.includes(&amp;quot;?&amp;quot;) ? &amp;quot;&amp;amp;&amp;quot; : &amp;quot;?&amp;quot;) +&lt;br /&gt;
                &amp;quot;enablejsapi=1&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
}} &lt;br /&gt;
== 템플릿 사용 예제 == &lt;br /&gt;
{{동영상스와이퍼 |&lt;br /&gt;
  https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1 |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59886</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59886"/>
		<updated>2025-12-29T00:51:05Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{1|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{2|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{3|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{4|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{5|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{6|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
            // &amp;amp; 이후 파라미터 제거&lt;br /&gt;
            const ampIndex = iframe.src.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
            if (ampIndex !== -1) {&lt;br /&gt;
              iframe.src = iframe.src.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;enablejsapi=1&amp;quot;)) {&lt;br /&gt;
              iframe.src =&lt;br /&gt;
                iframe.src +&lt;br /&gt;
                (iframe.src.includes(&amp;quot;?&amp;quot;) ? &amp;quot;&amp;amp;&amp;quot; : &amp;quot;?&amp;quot;) +&lt;br /&gt;
                &amp;quot;enablejsapi=1&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
  {{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  }} == 템플릿 사용 예제 == {{동영상스와이퍼 |&lt;br /&gt;
  https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1 |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c }}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/embed/MlM1fbaHZTQ&amp;amp;list-RDMlM1fbaHZTQ&amp;amp;start_radio-1?enablejsapi=1&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59885</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59885"/>
		<updated>2025-12-29T00:48:21Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{1|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{2|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{3|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{4|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{5|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{6|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{7|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{8|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{9|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{{10|}}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe의 URL에서 &amp;amp; 이후 파라미터 제거 후 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
            // &amp;amp; 이후 파라미터 제거&lt;br /&gt;
            const ampIndex = iframe.src.indexOf(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
            if (ampIndex !== -1) {&lt;br /&gt;
              iframe.src = iframe.src.substring(0, ampIndex);&lt;br /&gt;
            }&lt;br /&gt;
            // enablejsapi=1 파라미터 추가&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;enablejsapi=1&amp;quot;)) {&lt;br /&gt;
              iframe.src =&lt;br /&gt;
                iframe.src +&lt;br /&gt;
                (iframe.src.includes(&amp;quot;?&amp;quot;) ? &amp;quot;&amp;amp;&amp;quot; : &amp;quot;?&amp;quot;) +&lt;br /&gt;
                &amp;quot;enablejsapi=1&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
  {{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  }} == 템플릿 사용 예제 == {{동영상스와이퍼 |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c }}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59884</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59884"/>
		<updated>2025-12-29T00:46:44Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#regex:{{#replace:{{{1|}}}|watch?v-|embed/}}|&amp;amp;.*||}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#regex:{{#replace:{{{2|}}}|watch?v-|embed/}}|&amp;amp;.*||}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#regex:{{#replace:{{{3|}}}|watch?v-|embed/}}|&amp;amp;.*||}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{4|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{5|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{6|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{7|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{8|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{9|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{10|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe에 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;enablejsapi=1&amp;quot;)) {&lt;br /&gt;
              iframe.src =&lt;br /&gt;
                iframe.src +&lt;br /&gt;
                (iframe.src.includes(&amp;quot;?&amp;quot;) ? &amp;quot;&amp;amp;&amp;quot; : &amp;quot;?&amp;quot;) +&lt;br /&gt;
                &amp;quot;enablejsapi=1&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
  {{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  }} == 템플릿 사용 예제 == {{동영상스와이퍼 |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c }}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59883</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59883"/>
		<updated>2025-12-29T00:45:50Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{1|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{2|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{3|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{4|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{5|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{6|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{7|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{8|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{9|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{10|}}}|&amp;amp;.*||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe에 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;enablejsapi=1&amp;quot;)) {&lt;br /&gt;
              iframe.src =&lt;br /&gt;
                iframe.src +&lt;br /&gt;
                (iframe.src.includes(&amp;quot;?&amp;quot;) ? &amp;quot;&amp;amp;&amp;quot; : &amp;quot;?&amp;quot;) +&lt;br /&gt;
                &amp;quot;enablejsapi=1&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
  {{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  }} == 템플릿 사용 예제 == {{동영상스와이퍼 |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c }}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59882</id>
		<title>틀:동영상스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EB%8F%99%EC%98%81%EC%83%81%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59882"/>
		<updated>2025-12-29T00:44:18Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper video-swiper-container etb-video-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{1|}}}|/&amp;amp;.*/||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{2|}}}|/&amp;amp;.*/||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{3|}}}|/&amp;amp;.*/||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{4|}}}|/&amp;amp;.*/||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{5|}}}|/&amp;amp;.*/||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{6|}}}|/&amp;amp;.*/||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{7|}}}|/&amp;amp;.*/||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{8|}}}|/&amp;amp;.*/||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{9|}}}|/&amp;amp;.*/||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-overlay&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;iframe-wrap&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;iframe&lt;br /&gt;
            width=&amp;quot;100%&amp;quot;&lt;br /&gt;
            height=&amp;quot;100%&amp;quot;&lt;br /&gt;
            src=&amp;quot;{{#replace:{{#regex:{{{10|}}}|/&amp;amp;.*/||}}|watch?v-|embed/}}&amp;quot;&lt;br /&gt;
            frameborder=&amp;quot;0&amp;quot;&lt;br /&gt;
            allow=&amp;quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot;&lt;br /&gt;
            allowfullscreen&lt;br /&gt;
          &amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    // YouTube API 로드&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      const tag = document.createElement(&amp;quot;script&amp;quot;);&lt;br /&gt;
      tag.src = &amp;quot;https://www.youtube.com/iframe_api&amp;quot;;&lt;br /&gt;
      const firstScriptTag = document.getElementsByTagName(&amp;quot;script&amp;quot;)[0];&lt;br /&gt;
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);&lt;br /&gt;
&lt;br /&gt;
      // Swiper 초기화&lt;br /&gt;
      const swiper = new Swiper(&amp;quot;.video-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        on: {&lt;br /&gt;
          touchStart: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
            console.log(&amp;quot;touchStart&amp;quot;);&lt;br /&gt;
          },&lt;br /&gt;
          sliderMove: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.add(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
          touchEnd: () =&amp;gt; {&lt;br /&gt;
            document.querySelectorAll(&amp;quot;.swiper-slide&amp;quot;).forEach((slide) =&amp;gt; {&lt;br /&gt;
              slide.classList.remove(&amp;quot;dragging&amp;quot;);&lt;br /&gt;
            });&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 모든 iframe에 enablejsapi=1 파라미터 추가&lt;br /&gt;
      document&lt;br /&gt;
        .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
        .forEach((iframe) =&amp;gt; {&lt;br /&gt;
          if (iframe.src) {&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
            if (!iframe.src.includes(&amp;quot;enablejsapi=1&amp;quot;)) {&lt;br /&gt;
              iframe.src =&lt;br /&gt;
                iframe.src +&lt;br /&gt;
                (iframe.src.includes(&amp;quot;?&amp;quot;) ? &amp;quot;&amp;amp;&amp;quot; : &amp;quot;?&amp;quot;) +&lt;br /&gt;
                &amp;quot;enablejsapi=1&amp;quot;;&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
      // YTPlayer 객체 저장용 맵&lt;br /&gt;
      const players = new Map();&lt;br /&gt;
&lt;br /&gt;
      // YouTube API 준비 완료 시 호출되는 함수&lt;br /&gt;
      window.onYouTubeIframeAPIReady = function () {&lt;br /&gt;
        document&lt;br /&gt;
          .querySelectorAll(&amp;quot;.etb-video-swiper iframe&amp;quot;)&lt;br /&gt;
          .forEach((iframe, index) =&amp;gt; {&lt;br /&gt;
            if (iframe.src) {&lt;br /&gt;
              if (!iframe.src.includes(&amp;quot;youtu&amp;quot;)) return;&lt;br /&gt;
              // 유튜브 비디오 ID 추출&lt;br /&gt;
              let videoId = &amp;quot;&amp;quot;;&lt;br /&gt;
              if (iframe.src.includes(&amp;quot;youtube.com/embed/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src&lt;br /&gt;
                  .split(&amp;quot;youtube.com/embed/&amp;quot;)[1]&lt;br /&gt;
                  .split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              } else if (iframe.src.includes(&amp;quot;youtu.be/&amp;quot;)) {&lt;br /&gt;
                videoId = iframe.src.split(&amp;quot;youtu.be/&amp;quot;)[1].split(&amp;quot;?&amp;quot;)[0];&lt;br /&gt;
              }&lt;br /&gt;
&lt;br /&gt;
              if (videoId) {&lt;br /&gt;
                // YTPlayer 생성&lt;br /&gt;
                const player = new YT.Player(iframe, {&lt;br /&gt;
                  videoId: videoId,&lt;br /&gt;
                  events: {&lt;br /&gt;
                    onStateChange: function (event) {&lt;br /&gt;
                      const overlay = iframe&lt;br /&gt;
                        .closest(&amp;quot;.swiper-slide&amp;quot;)&lt;br /&gt;
                        .querySelector(&amp;quot;.iframe-overlay&amp;quot;);&lt;br /&gt;
                      // 일시정지(2) 또는 종료(0) 시 overlay 표시&lt;br /&gt;
                      if (event.data === YT.PlayerState.PAUSED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;paused&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                      if (event.data === YT.PlayerState.ENDED) {&lt;br /&gt;
                        overlay.style.display = &amp;quot;block&amp;quot;;&lt;br /&gt;
                        console.log(&amp;quot;ended&amp;quot;);&lt;br /&gt;
                      }&lt;br /&gt;
                    },&lt;br /&gt;
                  },&lt;br /&gt;
                });&lt;br /&gt;
                players.set(iframe, player);&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          });&lt;br /&gt;
      };&lt;br /&gt;
&lt;br /&gt;
      // iframe-overlay 클릭 이벤트 처리&lt;br /&gt;
      document.querySelectorAll(&amp;quot;.iframe-overlay&amp;quot;).forEach((overlay) =&amp;gt; {&lt;br /&gt;
        overlay.addEventListener(&amp;quot;click&amp;quot;, function () {&lt;br /&gt;
          const wrap = this.nextElementSibling;&lt;br /&gt;
          const iframe = wrap.querySelector(&amp;quot;iframe&amp;quot;);&lt;br /&gt;
          if (iframe) {&lt;br /&gt;
            // overlay 숨김&lt;br /&gt;
            this.style.display = &amp;quot;none&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            // YTPlayer로 재생&lt;br /&gt;
            const player = players.get(iframe);&lt;br /&gt;
            if (player) {&lt;br /&gt;
              if (typeof player.playVideo === &amp;quot;function&amp;quot;) {&lt;br /&gt;
                player.playVideo();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
  {{#tag:html|&lt;br /&gt;
  &amp;lt;script src=&amp;quot;https://unpkg.com/swiper@8/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  }} == 템플릿 사용 예제 == {{동영상스와이퍼 |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c |&lt;br /&gt;
  https://www.youtube.com/watch?v-nN6hHjH2O-c }}&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;pre&amp;gt;&lt;br /&gt;
== 템플릿 사용 예제 ==&lt;br /&gt;
{{동영상스와이퍼&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
  | https://www.youtube.com/watch?v-nN6hHjH2O-c&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&lt;br /&gt;
  &amp;gt;&lt;br /&gt;
  위 예제는 동영상 스와이퍼 템플릿 사용 예시입니다. watch?v- 형식의 유튜브 URL을&lt;br /&gt;
  입력하면 자동으로 embed 형식으로 변환됩니다.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59881</id>
		<title>틀:이미지스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59881"/>
		<updated>2025-12-24T02:50:24Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper image-swiper-container etb-image-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{1|}}}&amp;quot; alt=&amp;quot;{{{1|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{2|}}}&amp;quot; alt=&amp;quot;{{{2|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{3|}}}&amp;quot; alt=&amp;quot;{{{3|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{4|}}}&amp;quot; alt=&amp;quot;{{{4|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{5|}}}&amp;quot; alt=&amp;quot;{{{5|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{6|}}}&amp;quot; alt=&amp;quot;{{{6|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{7|}}}&amp;quot; alt=&amp;quot;{{{7|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{8|}}}&amp;quot; alt=&amp;quot;{{{8|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{9|}}}&amp;quot; alt=&amp;quot;{{{9|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{10|}}}&amp;quot; alt=&amp;quot;{{{10|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      var swiper = new Swiper(&amp;quot;.image-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 이미지 로딩 타임아웃 및 에러 처리&lt;br /&gt;
      document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-image&amp;#039;).forEach(function(img) {&lt;br /&gt;
        var timeout;&lt;br /&gt;
        var removeSlide = function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
          img.closest(&amp;#039;.swiper-slide&amp;#039;).remove();&lt;br /&gt;
          swiper.update();&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        // 1.5초 타임아웃 설정&lt;br /&gt;
        timeout = setTimeout(function() {&lt;br /&gt;
          if (!img.complete) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          } else if (img.naturalHeight === 0) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          }&lt;br /&gt;
        }, 1500);&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 성공 시 타임아웃 취소&lt;br /&gt;
        img.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 실패 시 슬라이드 제거&lt;br /&gt;
        img.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
          removeSlide();&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59880</id>
		<title>틀:이미지스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59880"/>
		<updated>2025-12-24T02:47:21Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper image-swiper-container etb-image-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{1|}}}&amp;quot; alt=&amp;quot;{{{1|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{2|}}}&amp;quot; alt=&amp;quot;{{{2|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{3|}}}&amp;quot; alt=&amp;quot;{{{3|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{4|}}}&amp;quot; alt=&amp;quot;{{{4|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{5|}}}&amp;quot; alt=&amp;quot;{{{5|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{6|}}}&amp;quot; alt=&amp;quot;{{{6|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{7|}}}&amp;quot; alt=&amp;quot;{{{7|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{8|}}}&amp;quot; alt=&amp;quot;{{{8|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{9|}}}&amp;quot; alt=&amp;quot;{{{9|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{10|}}}&amp;quot; alt=&amp;quot;{{{10|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      var swiper = new Swiper(&amp;quot;.image-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
		// 이미지 로딩 실패 시 슬라이드 제거 후 Swiper 업데이트&lt;br /&gt;
		document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-image&amp;#039;).forEach(function(img) {&lt;br /&gt;
			img.addEventListener(&amp;#039;error&amp;#039;, function(e) {&lt;br /&gt;
				console.log(e)&lt;br /&gt;
				this.closest(&amp;#039;.swiper-slide&amp;#039;).remove();&lt;br /&gt;
				swiper.update();&lt;br /&gt;
			});&lt;br /&gt;
			        timeout = setTimeout(function() {&lt;br /&gt;
          if (!img.complete) {&lt;br /&gt;
						if( img.naturalHeight === 0){&lt;br /&gt;
removeSlide();&lt;br /&gt;
						}&lt;br /&gt;
&lt;br /&gt;
          }&lt;br /&gt;
        }, 3000);&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 성공 시 타임아웃 취소&lt;br /&gt;
        img.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 실패 시 슬라이드 제거&lt;br /&gt;
        img.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
          removeSlide();&lt;br /&gt;
        });&lt;br /&gt;
		});&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59879</id>
		<title>틀:이미지스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59879"/>
		<updated>2025-12-24T02:46:48Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper image-swiper-container etb-image-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{1|}}}&amp;quot; alt=&amp;quot;{{{1|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{2|}}}&amp;quot; alt=&amp;quot;{{{2|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{3|}}}&amp;quot; alt=&amp;quot;{{{3|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{4|}}}&amp;quot; alt=&amp;quot;{{{4|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{5|}}}&amp;quot; alt=&amp;quot;{{{5|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{6|}}}&amp;quot; alt=&amp;quot;{{{6|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{7|}}}&amp;quot; alt=&amp;quot;{{{7|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{8|}}}&amp;quot; alt=&amp;quot;{{{8|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{9|}}}&amp;quot; alt=&amp;quot;{{{9|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{10|}}}&amp;quot; alt=&amp;quot;{{{10|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      var swiper = new Swiper(&amp;quot;.image-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
		// 이미지 로딩 실패 시 슬라이드 제거 후 Swiper 업데이트&lt;br /&gt;
		document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-image&amp;#039;).forEach(function(img) {&lt;br /&gt;
			img.addEventListener(&amp;#039;error&amp;#039;, function(e) {&lt;br /&gt;
				console.log(e)&lt;br /&gt;
				this.closest(&amp;#039;.swiper-slide&amp;#039;).remove();&lt;br /&gt;
				swiper.update();&lt;br /&gt;
			});&lt;br /&gt;
			        timeout = setTimeout(function() {&lt;br /&gt;
          if (!img.complete || img.naturalHeight === 0) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          }&lt;br /&gt;
        }, 3000);&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 성공 시 타임아웃 취소&lt;br /&gt;
        img.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 실패 시 슬라이드 제거&lt;br /&gt;
        img.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
          removeSlide();&lt;br /&gt;
        });&lt;br /&gt;
		});&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
	<entry>
		<id>https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59878</id>
		<title>틀:이미지스와이퍼</title>
		<link rel="alternate" type="text/html" href="https://gwangju-storyplatform.com/wiki/index.php?title=%ED%8B%80:%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%8A%A4%EC%99%80%EC%9D%B4%ED%8D%BC&amp;diff=59878"/>
		<updated>2025-12-24T02:44:07Z</updated>

		<summary type="html">&lt;p&gt;Ec3admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&lt;br /&gt;
{{#tag:html|&lt;br /&gt;
  &amp;lt;!-- Swiper CDN CSS --&amp;gt;&lt;br /&gt;
  &amp;lt;link&lt;br /&gt;
    rel=&amp;quot;stylesheet&amp;quot;&lt;br /&gt;
    href=&amp;quot;/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css&amp;quot;&lt;br /&gt;
  /&amp;gt;&lt;br /&gt;
  &amp;lt;script src=&amp;quot;/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;swiper image-swiper-container etb-image-swiper&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-wrapper&amp;quot;&amp;gt;&lt;br /&gt;
      {{#if:{{{1|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{1|}}}&amp;quot; alt=&amp;quot;{{{1|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{2|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{2|}}}&amp;quot; alt=&amp;quot;{{{2|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{3|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{3|}}}&amp;quot; alt=&amp;quot;{{{3|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{4|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{4|}}}&amp;quot; alt=&amp;quot;{{{4|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{5|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{5|}}}&amp;quot; alt=&amp;quot;{{{5|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{6|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{6|}}}&amp;quot; alt=&amp;quot;{{{6|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{7|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{7|}}}&amp;quot; alt=&amp;quot;{{{7|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{8|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{8|}}}&amp;quot; alt=&amp;quot;{{{8|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{9|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{9|}}}&amp;quot; alt=&amp;quot;{{{9|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}} {{#if:{{{10|}}}|&lt;br /&gt;
      &amp;lt;div class=&amp;quot;swiper-slide&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;{{{10|}}}&amp;quot; alt=&amp;quot;{{{10|}}}&amp;quot; class=&amp;quot;swiper-image&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
      |}}&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;swiper-pagination&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Swiper CDN JS --&amp;gt;&lt;br /&gt;
  &amp;lt;script&amp;gt;&lt;br /&gt;
    document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, function () {&lt;br /&gt;
      var swiper = new Swiper(&amp;quot;.image-swiper-container&amp;quot;, {&lt;br /&gt;
        slidesPerView: 1,&lt;br /&gt;
        spaceBetween: 28,&lt;br /&gt;
        pagination: {&lt;br /&gt;
          el: &amp;quot;.swiper-pagination&amp;quot;,&lt;br /&gt;
          type: &amp;quot;progressbar&amp;quot;,&lt;br /&gt;
        },&lt;br /&gt;
        breakpoints: {&lt;br /&gt;
          768: {&lt;br /&gt;
            slidesPerView: 2,&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
      });&lt;br /&gt;
&lt;br /&gt;
      // 이미지 로딩 타임아웃 및 에러 처리&lt;br /&gt;
      document.querySelectorAll(&amp;#039;.image-swiper-container .swiper-image&amp;#039;).forEach(function(img) {&lt;br /&gt;
        var timeout;&lt;br /&gt;
        var removeSlide = function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
          img.closest(&amp;#039;.swiper-slide&amp;#039;).remove();&lt;br /&gt;
          swiper.update();&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
        // 3초 타임아웃 설정&lt;br /&gt;
        timeout = setTimeout(function() {&lt;br /&gt;
          if (!img.complete || img.naturalHeight === 0) {&lt;br /&gt;
            removeSlide();&lt;br /&gt;
          }&lt;br /&gt;
        }, 1500);&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 성공 시 타임아웃 취소&lt;br /&gt;
        img.addEventListener(&amp;#039;load&amp;#039;, function() {&lt;br /&gt;
          clearTimeout(timeout);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // 이미지 로딩 실패 시 슬라이드 제거&lt;br /&gt;
        img.addEventListener(&amp;#039;error&amp;#039;, function() {&lt;br /&gt;
          removeSlide();&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    });&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ec3admin</name></author>
		
	</entry>
</feed>