How to embed video in hugo
Page content
한줄요약 : Hugo로 만든 blog 에서 video 파일을 지원하려면 shortcode를 활용한다.
아래 shortcode는 mp3, mp4 파일을 지원하는 zen에서 사용하는 shortcode(zen/layouts/shortcodes/video.html
)
<figure {{ with .Get "class" }}class="{{ . }}"{{ end }}>
<video controls preload="{{ .Get "preload" | default "metadata" }}" {{ with .Get "width" }}width="{{ . }}"{{ end }}>
{{ with .Get "src" }}<source src="{{ . | relURL }}" type="video/mp4">{{ end }}
</video>
{{ with .Get "caption" }}<figcaption>{{ . }}</figcaption>{{ end }}
</figure>
이 파일을 hugo site의 layouts/shortcodes
디렉토리에 복사하고 md 파일에서 다음과 같이 작성한다.
특별한 처리를 하지 않는 이상 Web browser 가 지원하는 표준(?) video 재생 기능을 사용하기에, mp4 파일은 지원되지만 mov 파일은 지원되지 않는다고 한다. Embedding local video in static/img or page folder to website
실제로 shortcode를 이용해서 작성한 md 파일에서 만들어진 HTML 페이지를 보면 다음과 같다.
<figure >
<video controls preload="metadata" >
<source src="/images/2020/06/20200606_1634_IMG_4080.MP4" type="video/mp4">
</video>
</figure>
즉 그냥 content type(media type이라고 하는 건가?)를 video/mp4
라고 지정하고 그 파일의 위치를 src
태그로 지정하는 형태. video/mp4
는 브라우저 설정 등에서 봤던 기억이 있는데… 잘 모르지만 그래서 이 type의 파일은 브라우저가 알아서 지원해주는 거라고 추정된다.
Shortcodes에 대한 내용은 Create Your Own Shortcodes 를 참고하고.
덕분에 이제 MP4 파일도 마음대로 blog에 추가할 수 있게 되었다는.