diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-09-22 23:54:28 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-09-22 23:54:28 +0900 |
| commit | 7aa99dcf206f2a7ac3748d6bf0cde078091e6b1c (patch) | |
| tree | 292debe1258fe2d0d221319a3d80b96e3006cd40 | |
| parent | c0a92547c6aca4d604df51a85e6afda9710798fd (diff) | |
deleted recordings/index.md, modified recordings/recordings-plain.html, created 250922/, created recordings/_index.md, created recordings/single.html
| -rw-r--r-- | content/recordings/250922/index.md | 43 | ||||
| -rw-r--r-- | content/recordings/_index.md (renamed from content/recordings/index.md) | 1 | ||||
| -rw-r--r-- | layouts/recordings/recordings-plain.html | 186 | ||||
| -rw-r--r-- | layouts/recordings/single.html | 60 |
4 files changed, 218 insertions, 72 deletions
diff --git a/content/recordings/250922/index.md b/content/recordings/250922/index.md new file mode 100644 index 0000000..fa553fa --- /dev/null +++ b/content/recordings/250922/index.md @@ -0,0 +1,43 @@ +--- +title: "250922" +date: 2025-09-22 +--- + +안녕! 심심하고 쓸쓸한 날이라 영상으로 찍은 일기 말고도 글을 남기려고ㅋㅋ 정말 +아침만해도 아니 어제 저녁인가 너무 슬펐거든. 니가 벌써 새로운 사람을 만나면서 +좋아한다고하고 나를 금방 잊는게. 좋아하는건 괜찮지만 나를 벌써 잊는다는게 참 +마음이 아프면서도 혹시 정말 내가 너의 버팀목 정도였나 하는 생각이 든다고 했던게 +너의 진심을 들으니 그건 다행히 아니구나해서 좋아. 아직 우리 예진이는 모르는게 +많으니까 날 아직 사랑한다는걸 모르겠지. 몰라도 돼. 나만 알면되지. 응응. 그래서 +오늘은 기분이 좋고 몇일은 좋을거같아. 너는 나중에 꺠닫게 되면 그때 슬퍼할까 +아쉬워할까 후회할까 궁금하다. 단순히 가족이였던 사람이라 마음이 쓰이고 +눈물이나고 하지 않아. 하지만 너는 모른척해 그리고 무시해. 당장 내가 너의 옆에 +있을 수 없으니까 모른척하고 싶어하는거 나는 이해해. 내가 널 이해 안하면 누가해? +나라도 해야지. 아무튼 그런 생각들 덕분에 행복해. 하지만 그걸로 인해 너에게 +상처들이 생기지 않으면 좋겠다. 정말 이런 사랑이 다시 오지는 않아. 아마 또 +타협하고 어느것 하나를 포기하는 그런 사랑이 오겠지. 그때 너가 상처 안받으면 +좋겠어. 그래서 너의 후회를 막고 싶어서 계속 난 너의 곁에 남을거고 너의 자리를 +비워두려고. 나중에 정말 우리가 결혼하면 엄청난 이야기가 될거같지 않아? 나는 +그렇게 생각하고 있어. 너 엄마가 아빠 버리고 딴사람 만난다고 힘들다고 이랬는데 +아빠가 기다렸다가 나중에 엄마가 돌아와서 받아줬다고. 아이들이 들으면 정말 +좋아할거같아. 예진이 닮은 딸이 우와 아빠 하면서 아빠같은 사람이랑 결혼할래 나도. +아니면 아빠랑 나도 결혼할래. 이럴거같지 않아? ㅋㅋㅋㅋ 너무 이쁘고 귀여울거같아. +그래서 억지로 너 자신의 마음을 너무 갉아먹지 않으면 좋겠어. 널 많이 좋아해주고 +아껴주고 조건이 너무 좋아도 항상 너의 마음을 잘 들여다보면 좋겠다. 그래서너의 +눈에서 눈물이 안나면 좋겠어. 나처럼 후회하고 올바르지 못한 연애를 안했으면 +하니까. 나는 20년이 걸렸어. 너로 인해 바뀌었지만 고맙게도. 그러니까 너 자신을 +속이며 타협하지 않으면 좋겠다. 하지만 이건 내가 생각하는 마음이고 너는 +그런것들도 괜찮으면 다행이야. 나는 우리 예진이가 제일 행복한 선택을 하면 +좋겠거든. 내가 꼭 아니더라도. 지금 걱정은 나를 완전히 못잊고 새로운 시작을 +하는게 걱정이야. 혹시 너의 마음이 다치진 않을까. 너 자신을 나중에 후회하며 +자책하진 않을까. 그런것들이 걱정돼. 그래서 언제라도 너가 나한테 힘든게 있으면 +말하고 도움이 못되더라도 너의 진심을 받아줄 사람이 나뿐이니까 언제든 해주면 +좋겠다. 그래서 너의 마음이 더 다치지 않으면 좋겠어. 나의 이런 마음이 너에게 +닿으면 좋겠다. 이제 편지나 영상을 안보겠지만 혹시 잠깐 내 생각이나서 이걸 보고 +내가 걱정하는 것들을 조심하면 좋겠어. 그럼 언제쯤 너를 또 볼수 있을까? 나를 보고 +얘기하는게 너가 힘들고 슬퍼하니 못하겠지만 언제라도 연락이 오면 기쁘게 받고 +싶다. 아마 이제 남은건 정말 기쁜 일과 슬픈 연락이 남았겠지. 너가 다시 돌아오거나 +아니면 이제 정말 나를 봐도 가슴이 먹먹하지 않고 사랑하지 않는다고 확신할 수 +있어서 진짜 안녕이라고 하거나. 후자만은 아니길 바래. 힘든일 기쁜일을 공유해주면 +좋겠어. 헤헤. 그럼 이만 가야겠다. 늦었어. 오늘 일한다고 했는데 고생 덜하는 +하루가 되면 좋겠다. 그럼 귿밤ㅋㅋ diff --git a/content/recordings/index.md b/content/recordings/_index.md index 33e3f43..4d6ec9e 100644 --- a/content/recordings/index.md +++ b/content/recordings/_index.md @@ -2,4 +2,5 @@ title: "Daily Notes" url: "/recordings/" layout: "recordings-plain" +type: "recordings" --- diff --git a/layouts/recordings/recordings-plain.html b/layouts/recordings/recordings-plain.html index 1b1b82b..27209dd 100644 --- a/layouts/recordings/recordings-plain.html +++ b/layouts/recordings/recordings-plain.html @@ -1,77 +1,119 @@ <!doctype html> -<meta charset="utf-8" /> -<title>{{ .Title }}</title> -<meta name="viewport" content="width=device-width, initial-scale=1" /> -<style> - body { - font-family: - system-ui, - Segoe UI, - Roboto, - Apple SD Gothic Neo, - AppleGothic, - sans-serif; - max-width: 900px; - margin: 32px auto; - padding: 0 16px; - } - h1 { - margin-bottom: 12px; - } - ul { - line-height: 1.9; - } - a { - text-decoration: none; - } - a:hover { - text-decoration: underline; - } - video { - width: 100%; - height: auto; - margin: 12px 0; - } - .meta { - color: #666; - margin-top: 4px; - } -</style> +<html> + <head> + <meta charset="utf-8" /> + <title>{{ .Title }}</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style> + body { + font-family: + system-ui, + Segoe UI, + Roboto, + Apple SD Gothic Neo, + AppleGothic, + sans-serif; + max-width: 900px; + margin: 32px auto; + padding: 0 16px; + } + h1 { + margin-bottom: 12px; + } + ul { + line-height: 1.9; + padding-left: 1.1rem; + } + a { + text-decoration: none; + } + a:hover { + text-decoration: underline; + } + .meta { + color: #666; + margin-top: 4px; + } + video { + width: 100%; + height: auto; + margin: 12px 0; + } + .badge { + font-size: 0.8rem; + border: 1px solid #ccc; + border-radius: 6px; + padding: 2px 6px; + margin-left: 6px; + } + </style> + </head> + <body> + <h1>{{ .Title }}</h1> -<h1>Recordings</h1> + <!-- 섹션 소개 글 --> + <div class="content">{{ .Content }}</div> -<div id="player" style="display: none"> - <video id="video" controls preload="metadata"></video> - <div id="meta" class="meta"></div> -</div> + <!-- 인라인 플레이어 --> + <div id="player" style="display: none"> + <video id="video" controls preload="metadata"></video> + <div id="meta" class="meta"></div> + </div> -<ul id="list"> - {{ range .Resources.Match "*.{mp4,mov}" }} - <li> - <a href="{{ .RelPermalink }}" data-name="{{ .Name }}" class="vid"> - {{ .Name }} - </a> - </li> - {{ else }} - <li>No recordings found.</li> - {{ end }} -</ul> + <ul id="list"> + <!-- 1) 섹션 폴더 바로 아래 mp4/mov (섹션 리소스) --> + {{ $secVids := .Resources.Match "*.{mp4,mov}" }} {{ range $v := $secVids + }} + <li> + <a href="{{ $v.RelPermalink }}" data-name="{{ $v.Name }}" class="vid" + >{{ $v.Name }}</a + > + <span class="badge">video</span> + </li> + {{ end }} -<script> - document.addEventListener("DOMContentLoaded", () => { - const list = document.getElementById("list"); - const wrap = document.getElementById("player"); - const video = document.getElementById("video"); - const meta = document.getElementById("meta"); - list.addEventListener("click", (e) => { - const a = e.target.closest("a.vid"); - if (!a) return; - e.preventDefault(); - video.src = a.getAttribute("href"); - video.play().catch(() => {}); - wrap.style.display = ""; - const name = a.dataset.name || video.src.split("/").pop(); - meta.textContent = name; - }); - }); -</script> + <!-- 2) 자식 페이지들 (노트/동영상 페이지) --> + {{ range $p := .Pages.ByDate.Reverse }} {{ $vid := $p.Resources.GetMatch + "*.{mp4,mov}" }} + <li> + {{ if $vid }} + <a + href="{{ $vid.RelPermalink }}" + data-name="{{ or $p.Title $vid.Name }}" + class="vid" + > + {{ with $p.Title }}{{ . }}{{ else }}{{ $vid.Name }}{{ end }} + </a> + <span class="badge">video</span> + <div class="meta">{{ $p.Date.Format "2006-01-02" }}</div> + {{ else }} + <a href="{{ $p.RelPermalink }}">{{ $p.Title }}</a> + <span class="badge">note</span> + <div class="meta">{{ $p.Date.Format "2006-01-02" }}</div> + {{ end }} + </li> + {{ end }} {{ if and (eq (len $secVids) 0) (eq (len .Pages) 0) }} + <li>No items yet.</li> + {{ end }} + </ul> + + <script> + document.addEventListener("DOMContentLoaded", () => { + const list = document.getElementById("list"); + const wrap = document.getElementById("player"); + const video = document.getElementById("video"); + const meta = document.getElementById("meta"); + list.addEventListener("click", (e) => { + const a = e.target.closest("a.vid"); + if (!a) return; // note는 링크로 이동 + e.preventDefault(); // video는 인라인 재생 + video.src = a.getAttribute("href"); + video.play().catch(() => {}); + wrap.style.display = ""; + meta.textContent = a.dataset.name || a.textContent.trim(); + wrap.scrollIntoView({ behavior: "smooth", block: "nearest" }); + }); + }); + </script> + </body> +</html> diff --git a/layouts/recordings/single.html b/layouts/recordings/single.html new file mode 100644 index 0000000..e784306 --- /dev/null +++ b/layouts/recordings/single.html @@ -0,0 +1,60 @@ +<!doctype html> +<html lang="ko"> +<head> + <meta charset="utf-8" /> + <title>{{ if .Title }}{{ .Title }} – {{ end }}Recordings</title> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <style> + body{font-family:system-ui,Segoe UI,Roboto,Apple SD Gothic Neo,AppleGothic,sans-serif;max-width:900px;margin:32px auto;padding:0 16px;line-height:1.7} + header,footer{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:8px 0 20px} + a{text-decoration:none} a:hover{text-decoration:underline} + .muted{color:#666;font-size:.9rem} + .nav{display:flex;gap:8px;flex-wrap:wrap} + .btn{border:1px solid #ccc;border-radius:8px;padding:6px 10px} + h1{margin:0 0 6px} + .content :is(h1,h2,h3){margin-top:1.2em} + .content img, .content video{max-width:100%;height:auto} + </style> +</head> +<body> + <header> + <div class="nav"> + {{ $back := (cond (ne .Parent nil) .Parent.RelPermalink "/recordings/") }} + <a class="btn" href="{{ $back }}">← Back</a> + </div> + <div class="muted">{{ .Date.Format "2006-01-02" }}</div> + </header> + + {{ if .Title }}<h1>{{ .Title }}</h1>{{ end }} + + <main class="content"> + {{ .Content }} + </main> + + <footer> + <div class="nav"> + {{ with .PrevInSection }} + <a class="btn" href="{{ .RelPermalink }}">← Before</a> + {{ end }} + {{ with .NextInSection }} + <a class="btn" href="{{ .RelPermalink }}">Next →</a> + {{ end }} + </div> + <div></div> + </footer> + + <script> + // 선택: 키보드 좌우 화살표로 이전/다음 이동 + document.addEventListener("keydown", e => { + if (e.target.closest("input,textarea")) return; + if (e.key === "ArrowLeft") { + const a=document.querySelector('a.btn:has(+ a.btn), a.btn[href*="Before"]'); + if (a) location.href=a.href; + } else if (e.key === "ArrowRight") { + const links=[...document.querySelectorAll('a.btn')].filter(x=>/Next/.test(x.textContent)); + if (links[0]) location.href=links[0].href; + } + }); + </script> +</body> +</html> |
