기능 제안: 코드 블록 내 프롬프트(기호) 시각화 지원
🧩 제안 배경
문서 내 쉘 명령어나 디버깅 예제를 코드 블록으로 작성할 때, 프롬프트($, #, (gdb) 등)를 시각적으로 함께 보여줄 필요가 있다.
하지만 프롬프트를 코드 블록 본문에 직접 포함하면 복사 시 불필요한 문자열이 함께 복사돼 사용성을 해친다.
프롬프트는 시각적으로는 노출되되, 실제 복사되는 텍스트에는 포함되지 않도록 분리 렌더링할 수 있어야 한다.
💡 제안 내용
프롬프트 기호를 코드 블록의 속성(prop)으로 지정하고, 렌더링 결과에만 반영되도록 처리한다.
본문에는 명령어만 작성하고, 프롬프트는 메타 정보로 분리해 전달한다.
요구 사항:
$, #, (gdb) 등 프롬프트 기호를 코드 블록 좌측 또는 인라인으로 시각적 표시
- 복사 시에는 명령어 본문만 클립보드에 포함되도록 처리
- 프롬프트 종류를 마크다운 코드 블록의 속성으로 지정 가능
- 접근성을 고려해
aria-hidden 등 사용
예시 입력
```shell prompt="$"
echo "Hello"
apt update
```
기대 렌더링 결과
$ echo "Hello"
$ apt update
복사 시:
🔧 구현 접근
Starlight는 코드 블록 렌더링에 Expressive Code를 사용하므로, 해당 기능은 Expressive Code의 커스텀 플러그인으로 구현하는 것이 적절해 보인다.
플러그인은 다음을 수행한다:
- 코드 블록 속성에서 프롬프트 기호를 읽어 각 줄에 시각적으로 표시
- 렌더링 시 프롬프트를 별도 레이어로 분리
- 복사 시 프롬프트가 제외되도록 DOM 구조 또는 클립보드 핸들링을 조작
- 접근성과 유연성을 위해
aria-hidden, data-* 속성 등을 활용
🔠 prop 명칭에 대한 고려
현재 제안하는 속성명은 prompt이다.
prompt는 직관적이고 간결하지만, 일반적인 용례(예: window.prompt)와의 혼동 가능성 있음
- 대안으로
promptSymbol, promptPrefix, shellPrompt, uiPrompt 등을 고려할 수 있음
- 단일 타입 프롬프트 지원이 기본이라면
prompt가 적절하며, 확장이 필요할 경우 더 구체적인 이름이 바람직함
✨ 기대 효과
- 문서 내 예제 코드의 시각적 명확성 향상
- 사용자는 별도 편집 없이 명령어를 바로 복사해 사용할 수 있음
- 다양한 환경(쉘, 루트, 디버거 등)에 유연하게 대응 가능
- 유지보수 측면에서도 Expressive Code의 확장 방식과 잘 맞음
기능 제안: 코드 블록 내 프롬프트(기호) 시각화 지원
🧩 제안 배경
문서 내 쉘 명령어나 디버깅 예제를 코드 블록으로 작성할 때, 프롬프트(
$,#,(gdb)등)를 시각적으로 함께 보여줄 필요가 있다.하지만 프롬프트를 코드 블록 본문에 직접 포함하면 복사 시 불필요한 문자열이 함께 복사돼 사용성을 해친다.
프롬프트는 시각적으로는 노출되되, 실제 복사되는 텍스트에는 포함되지 않도록 분리 렌더링할 수 있어야 한다.
💡 제안 내용
프롬프트 기호를 코드 블록의 속성(prop)으로 지정하고, 렌더링 결과에만 반영되도록 처리한다.
본문에는 명령어만 작성하고, 프롬프트는 메타 정보로 분리해 전달한다.
요구 사항:
$,#,(gdb)등 프롬프트 기호를 코드 블록 좌측 또는 인라인으로 시각적 표시aria-hidden등 사용예시 입력
기대 렌더링 결과
🔧 구현 접근
Starlight는 코드 블록 렌더링에 Expressive Code를 사용하므로, 해당 기능은 Expressive Code의 커스텀 플러그인으로 구현하는 것이 적절해 보인다.
플러그인은 다음을 수행한다:
aria-hidden,data-*속성 등을 활용🔠 prop 명칭에 대한 고려
현재 제안하는 속성명은 prompt이다.
prompt는 직관적이고 간결하지만, 일반적인 용례(예: window.prompt)와의 혼동 가능성 있음promptSymbol,promptPrefix,shellPrompt,uiPrompt등을 고려할 수 있음prompt가 적절하며, 확장이 필요할 경우 더 구체적인 이름이 바람직함✨ 기대 효과