C.W.K.
Stream
Lesson 05 of 08 · published

멀티라인 string — | literal vs > folded

~12 min · yaml, strings, block-scalars

Level 0평문
0 XP0/64 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

두 block 스칼라 스타일, 그리고 indicator

| — literal: 모든 줄바꿈 유지

파이프 = '줄바꿈 정확히 보존'. shell script, 코드 블록, 줄바꿈 중요한 멀티 문단 description 에 사용.

> — folded: 스페이스로 합침, 빈 줄 = 문단 break

greater-than = '연속된 비어있지 않은 줄을 스페이스로 합치고 빈 줄을 문단 break 로 다룸'. 출력에서 자유롭게 wrap 되어야 하지만 소스에선 좁게 읽혀야 할 prose 문단에 사용.

Chomping indicator

| 또는 > 뒤에 - 또는 + 추가해 trailing newline 제어:

  • | 또는 >clip (기본). trailing newline 한 개.
  • |- 또는 >-strip. trailing newline 없음.
  • |+ 또는 >+keep. 모든 trailing newline.

들여쓰기 indicator (드물지만 유용)

|2 = '안에 2 칸 들여쓴 block 스칼라'. 내용의 첫 줄 자체가 공백으로 시작하고 파서가 잘못 셀 때 유용.

folded 모드가 코드 조용히 손상: Python 이나 YAML 스니펫을 > 안에 넣으면 모든 줄바꿈이 스페이스 되고 문법적으로 깨진 덩어리 생김. 코드 블록엔 항상 |; > 는 wrap-on-render 가 OK 인 prose 에만.

Code

| literal — 줄바꿈 보존·yaml
script: |
  #!/usr/bin/env bash
  set -euo pipefail

  echo "hello"
  for i in 1 2 3; do
    echo "$i"
  done
# literal 줄바꿈 보존된 단일 string 으로 파싱.
> folded — 줄을 문단으로 합침·yaml
description: >
  Markup Quest covers four data and document
  formats every developer touches every day.

  This second paragraph is separated by the
  blank line above. Inside a paragraph, lines
  are joined into one with spaces.
# 파싱: "Markup Quest covers four... every day.\n\nThis second paragraph...\n"
Chomping — strip vs keep vs clip (기본)·yaml
clip:  |
  line one
  line two
# 결과: "line one\nline two\n" — trailing \n 한 개

strip: |-
  line one
  line two
# 결과: "line one\nline two" — trailing \n 없음

keep:  |+
  line one
  line two


# 결과: "line one\nline two\n\n\n" — 모든 trailing \n 보존
실제 사례: script 든 Kubernetes ConfigMap·yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: bootstrap-script
data:
  init.sh: |
    #!/usr/bin/env bash
    set -euo pipefail
    apt-get update
    apt-get install -y curl jq
    curl -fsSL https://example.com/setup | bash

External links

Exercise

같은 5 줄 Bash script 를 세 가지로 작성: |, >, |-. 각각 yq 로 파싱하고 파싱된 스칼라 읽어. 어느 것이 줄바꿈 잃는지 (> 버전), 어느 것이 trailing newline 잃는지 (|-) 확인. Kubernetes ConfigMap 에선 어느 걸 잡을지 결정.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.