Vue: ๋ฃจํŠธ ์š”์†Œ๋ฅผ ๋“ค์—ฌ ์“ด ํ›„์— ๋งŒ โ€‹โ€‹Vue.js mustach๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ Œ๋”๋ง๋˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2018๋…„ 04์›” 29์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: vuejs/vue

๋ฒ„์ „

2.5.16

๋ณต์ œ ๋งํฌ

https://codesandbox.io/s/6jnlpno3lw

์žฌํ˜„ ๋‹จ๊ณ„

์ด ๋ฌธ์ œ๋Š” ๋ฃจํŠธ ์š”์†Œ๊ฐ€ ๋“ค์—ฌ ์“ฐ๊ธฐ๋˜์ง€ ์•Š๊ณ  ์ฝง์ˆ˜์—ผ์ด ์—ฌ๋Ÿฌ ์ค„๋กœ ๋ถ„ํ•  ๋œ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

<template>
<div>
    <p>{{
        myVar
    }}</p>
</div>
</template>

๋ฃจํŠธ ์š”์†Œ๊ฐ€ ๋“ค์—ฌ ์“ฐ๊ธฐ ๋œ ๊ฒฝ์šฐ์—๋งŒ ์ฝง์ˆ˜์—ผ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค.

<template>
    <div>
        <p>{{
            myVar
        }}</p>
    </div>
</template>

๋˜ํ•œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์€ ์ฝง์ˆ˜์—ผ์„ ํ•œ ์ค„์— ๋„ฃ๊ณ  ๋ฃจํŠธ ์š”์†Œ๋ฅผ ๋“ค์—ฌ ์“ฐ์ง€ ์•Š์„ ๋•Œ์ž…๋‹ˆ๋‹ค.

<template>
<div>
    <p>{{ myVar }}</p>
</div>
</template>

๋ฌด์—‡์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๊นŒ?

์ฝง์ˆ˜์—ผ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”์ธ๋”ฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์ฝง์ˆ˜์—ผ์€ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค.


๋‚ด ์ฝ”๋“œ๋ฅผ ์˜ˆ์˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ ๊ธฐ ๋•Œ๋ฌธ์— ์ฝง์ˆ˜์—ผ์„ ์—ฌ๋Ÿฌ ์ค„๋กœ ๋‚˜๋ˆ„๊ณ  ๋ฃจํŠธ ์š”์†Œ์˜ ๋“ค์—ฌ ์“ฐ๊ธฐ๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

bug has PR

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์™œ ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  4 ๋Œ“๊ธ€

<template> ์—์„œ root element ์‚ฌ์ด์˜ ๋‹จ์ผ ๊ณต๋ฐฑ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

<template> <p>{{
  myVar
}}</p></template>

์‚ฌ์ด์— ๊ณต๋ฐฑ์ด ์—†์Šต๋‹ˆ๋‹ค.

<template><p>{{ 
  myVar
}}</p></template>

์™œ ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๊นŒ?

@syntacticsolutions ์ด๊ฒƒ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๊ทธ๊ฒƒ์€ ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @DanielSharkov , ๋ฒ„๊ทธ ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.

๋“ค์—ฌ ์“ฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ๋™์ž‘์˜ ๊ทผ๋ณธ ์›์ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/yyx990803/de-indent/blob/master/index.js#L17 -L24

    if (c === ' ' || c === '\t') {
      type = c
      cur = count(line, type)
      if (cur < min) {
        min = cur
      }
    } else {
      return str

r์„ ์ถ”๊ฐ€ํ•ด์•ผํ• ๊นŒ์š”? ํ…์ŠคํŠธ ๋ณด๊ฐ„ ์ •๊ทœ์‹์˜ ํŒจํ„ด :

https://github.com/vuejs/vue/blob/5e3823a5766da1df60481e1e7a20f36d08e716ce/src/compiler/parser/text-parser.js#L6 -L13

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰