Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
58232ba
feat: 앱 내장 Markdown renderer bundle 구성
opficdev Jul 24, 2026
19eff3e
ci: Markdown renderer bundle 일치 여부 검증
opficdev Jul 24, 2026
eeb46e4
feat: MarkdownRendererView WebKit 브릿지 추가
opficdev Jul 24, 2026
39817a3
refactor: Todo Markdown 표시 경로를 WKWebView로 교체
opficdev Jul 24, 2026
eb8ece0
chore: MarkdownUI 의존성 제거
opficdev Jul 24, 2026
57d3ea2
feat: 각주 하이라이트 구현
opficdev Jul 24, 2026
77f6242
refactor: MarkdownRenderer 통신 타입 정리
opficdev Jul 24, 2026
2e1d5e7
refactor: MarkdownView 스크롤 책임을 WKWebView로 이전
opficdev Jul 24, 2026
d59ed22
fix: Todo 참조 목록 기호 중복 제거
opficdev Jul 24, 2026
07043a3
feat: Markdown 코드 블록 구문 강조 지원
opficdev Jul 24, 2026
0386eef
refactor: 가독성 개선
opficdev Jul 25, 2026
9209790
chore: Markdown renderer CSS 압축 비활성화
opficdev Jul 25, 2026
0973cc9
fix: WKWebView 탭바 가림 영역 반영
opficdev Jul 25, 2026
8ba8a5e
fix: Markdown renderer JavaScript 산출물 추적
opficdev Jul 25, 2026
918cfd7
fix: 들여쓴 Todo 참조 렌더링 복구
opficdev Jul 25, 2026
e441702
fix: WKWebView WebContent 종료 복구
opficdev Jul 25, 2026
39aa8a8
fix: Todo 상세 제목 가로 스크롤 적용
opficdev Jul 25, 2026
c3a4c2f
fix: Todo 참조 번호 정규화
opficdev Jul 25, 2026
cd47042
fix: 빈 컨텐츠일 때 뷰가 중앙으로 모이는 현상 해결
opficdev Jul 25, 2026
49e7daf
chore: 제미나이 봇 제거에 따른 파일 제거
opficdev Jul 25, 2026
ae3556b
refactor: Todo 참조 렌더링 정규화
opficdev Jul 25, 2026
a7ff191
fix: 각주 글자 크기 상대 비율 적용
opficdev Jul 25, 2026
3f08ddb
fix: WKWebView 문서 언어 앱 설정 반영
opficdev Jul 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions .gemini/styleguide.md

This file was deleted.

2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# 컴파일된 JavaScript 문자열의 공백을 보존
Application/Presentation/PresentationShared/Resources/MarkdownRenderer/renderer.js -whitespace
24 changes: 24 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,30 @@ jobs:
steps:
- uses: actions/checkout@v5

- name: Set up Node.js
uses: actions/setup-node@v7
with:
node-version-file: Tools/MarkdownRenderer/.node-version
cache: npm
cache-dependency-path: Tools/MarkdownRenderer/package-lock.json

- name: Check Markdown renderer
working-directory: Tools/MarkdownRenderer
shell: bash
run: |
set -euo pipefail

npm ci
npm run verify

RENDERER_OUTPUT="../../Application/Presentation/PresentationShared/Resources/MarkdownRenderer"

node --check "$RENDERER_OUTPUT/renderer.js"
git -C ../.. diff --exit-code -- \
Application/Presentation/PresentationShared/Resources/MarkdownRenderer/index.html \
Application/Presentation/PresentationShared/Resources/MarkdownRenderer/renderer.css \
Application/Presentation/PresentationShared/Resources/MarkdownRenderer/renderer.js

- name: Install private config files
uses: ./.github/actions/install-private-config
with:
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ ContentView.swift
# NPM
node_modules/
*.log
lib/
*.js
# 배포 앱에 필요한 Markdown renderer 산출물이므로 Git에서 추적
!Application/Presentation/PresentationShared/Resources/MarkdownRenderer/renderer.js

# Gem
.bundle/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!doctype html>
<html data-color-scheme="light">
<head>
<meta charset="utf-8">
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
>
<meta
http-equiv="Content-Security-Policy"
content="default-src 'none'; script-src 'self'; style-src 'self' 'nonce-devlog-renderer'; img-src https: data:; connect-src 'none'; font-src 'none'; frame-src 'none'; base-uri 'none'; form-action 'none'"
>
<link rel="stylesheet" href="renderer.css">
<style id="renderer-dynamic-style" nonce="devlog-renderer"></style>
</head>
<body>
<article id="markdown-content" class="markdown-body"></article>
<script src="renderer.js"></script>
</body>
</html>
Loading
Loading