Js-beautify: Sass에 λŒ€ν•œ newline_between_rules 지원(ν–₯상)

에 λ§Œλ“  2015λ…„ 03μ›” 19일  Β·  49μ½”λ©˜νŠΈ  Β·  좜처: beautify-web/js-beautify

이제 v1.5.5의 newline_between_rules μ˜΅μ…˜μ€ CSSμ—μ„œλ§Œ μ§€μ›λ©λ‹ˆλ‹€. https://github.com/beautify-web/js-beautify/pull/574
λ”°λΌμ„œ Sass μ—μ„œλŠ” 쀑첩을 μœ„ν•΄ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ—¬κΈ° λ‚΄ test.js 파일:

var fs = require('fs');
var beautify_css = require('js-beautify').css;

fs.readFile('test.scss', 'utf8', function(err, data) {
  if (err) {
    throw err;
  }

  console.log(beautify_css(data, {
    indent_size: 2,
    newline_between_rules: true
  }));
});

μ‚°μΆœ:

$ node test.js

.icons {
  padding: 0;
  li {
    display: inline-block;
  }
  a {
    display: block;
    color: #000;
  }
  a:hover {
    color: #ccc;
  }
}

Sass에 λŒ€ν•œ newline_between_rules 지원을 μΆ”κ°€ν•˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.
λ¬Έμ•ˆ 인사.

good first issue css templating enhancement

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

κ΅¬λ…μžμ—κ²Œ μŠ€νŒΈμ„ μ „μ†‘ν•˜μ§€ μ•ŠλŠ” +1 λ©”μ‹œμ§€κ°€ μ•„λ‹Œ 초기 κ²Œμ‹œλ¬Όμ— πŸ‘ λ°˜μ‘μœΌλ‘œ νˆ¬ν‘œν•˜μ„Έμš”. 감사 ν•΄μš”!

λͺ¨λ“  49 λŒ“κΈ€

그리고 μ–΄λ–€ λͺ¨μŠ΅μ„ μ›ν•˜μ‹œλ‚˜μš”?

CSS 버전과 μœ μ‚¬ https://github.com/beautify-web/js-beautify/pull/574
일반적으둜 ν•˜λ‚˜μ˜ 쀑첩 μˆ˜μ€€μ΄λ©΄ μΆ©λΆ„ν•©λ‹ˆλ‹€.
예λ₯Ό λ“€λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

// Icons
.icons {
  padding: 0;

  li {
    display: inline-block;
  }

  a {
    display: block;
    color: #000;
  }

  a:hover {
    color: #ccc;
  }
}

// Button
.button {
  &.primary {
    color: #4183c4;
  }

  &.primary:hover {
    color: lighten(#4183c4, 15%);
  }
}

μ•ˆλ…•,
이것은 scs κ·œμΉ™μ— λŒ€ν•œ μž‘μ—…μž…λ‹ˆκΉŒ?

.old_price {
@include GibsonRegular();
@include κΈ€κΌ΄ 크기(14);
색상: #646464;
μ—¬λ°±-μ™Όμͺ½: 10px;
ν…μŠ€νŠΈ μž₯식: 라인 슀루;

.promovalue {
  <strong i="15">@include</strong> GibsonRegular();
}

}

+1

+1

+1

+1

newline_between_nested_rules: true 와 같은 μ˜΅μ…˜μ€ 특히 쀑첩 문제인 것 κ°™μŠ΅λ‹ˆκΉŒ?

} 및 ; λŠ” μ€‘μ²©λœ μƒˆ 쀄에 λŒ€ν•œ κ·œμΉ™μ„ κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€.

+1, λ˜ν•œ 더 적은 λΉ„μš©μœΌλ‘œ

+1

+1

이것이 μ‹€μ œλ‘œ μ€‘μ²©λœ κ·œμΉ™μ—λ§Œ λ¬Έμ œκ°€ μžˆμŒμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ newline_between_rules: true :

body {
  background-color: #FFF;

  > div {
    background-color: #AAA;
  }
}

.container {
  color: blue;
}

λ‹€μŒκ³Ό 같이 λ©λ‹ˆλ‹€.

body {
  background-color: #FFF;
  > div {
    background-color: #AAA;
  }
}

.container {
  color: blue;
}

newline_between_rules: false κ²°κ³ΌλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

body {
  background-color: #FFF;
  > div {
    background-color: #AAA;
  }
}
.container {
  color: blue;
}

λ”°λΌμ„œ 쀑첩 κ·œμΉ™ μ‚¬μ΄μ˜ κ°œν–‰ 지원을 κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€.

+1

이것에 λŒ€ν•œ μ–΄λ–€ ETA?

+1

+1

+1 :(

+1

λ‹€λ₯Έ +1

μ†ŒμŒ μ£„μ†‘ν•©λ‹ˆλ‹€. λ‚˜λŠ” 이것을 μ°¬μ„±ν•˜λŠ” λ‹€λ₯Έ 방법이 μžˆλŠ”μ§€ λͺ°λžμŠ΅λ‹ˆλ‹€.

@zimmerboy λͺ¨λ“  λŒ“κΈ€μ˜ 였λ₯Έμͺ½ μƒλ‹¨μ—λŠ” +1 λ°˜μ‘(:+1:)이 ν¬ν•¨λœ "λ°˜μ‘ μΆ”κ°€" λ²„νŠΌμ΄ μžˆμŠ΅λ‹ˆλ‹€.

beautify-css.js λ‚΄ ν•΄κ²° 방법:

  1. newLine ν•¨μˆ˜ ꡐ체:
        print.newLine = function(keepWhitespace, keepNewLine) {
            if (output.length) {
                if (!keepWhitespace && output[output.length - 1] !== '\n') {
                    print.trim();
                    if (keepNewLine) { output.push('\n'); }
                }

                output.push('\n');

                if (basebaseIndentString) {
                    output.push(basebaseIndentString);
                }
            }
        };
  1. newline_between_rules 쑰건과 λͺ…령문을 λͺ¨λ‘ λ‹€μŒμœΌλ‘œ λ³€κ²½ν•©λ‹ˆλ‹€.
                    if (newline_between_rules) {
                        print.newLine(false, true);
                    }

μ°Έκ³ : 이것은 속성 λ’€μ˜ κ·œμΉ™μ΄ μ•„λ‹ˆλΌ κ·œμΉ™ μ‚¬μ΄μ˜ κ°œν–‰λ§Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€. λˆ„κ΅¬λ“ μ§€ 그것에 λŒ€ν•œ 아이디어가 μžˆμŠ΅λ‹ˆκΉŒ?

@sickboy - μΏ¨, ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Ό μ‹œμž‘ν•˜κ³ , λͺ‡ 가지 ν…ŒμŠ€νŠΈλ₯Ό μΆ”κ°€ν•˜μ„Έμš”. 이 μž‘μ—…μ„ 진행해 μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€.

이거 μ–Έμ  κ°„ λ‚˜μ˜€λ‚˜μš”? sass에 beautifyλ₯Ό μ‚¬μš©ν•˜λŠ” μœ μΌν•œ μ°¨λ‹¨κΈ°μž…λ‹ˆλ‹€.

@mrahhal - 이 λ¬Έμ œλŠ” 거의 2년이 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. @sickboy κ°€ 이에 λŒ€ν•΄ 일뢀 μž‘μ—…μ„ μˆ˜ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. λˆ„κ΅°κ°€λŠ” ν…ŒμŠ€νŠΈλ‘œ ν’€ λ¦¬ν€˜μŠ€νŠΈλ₯Ό ν•˜κΈ°λ§Œ ν•˜λ©΄ λ©λ‹ˆλ‹€.

μ–΄μ©Œλ©΄ 당신은 μ΄κ²ƒμ„ν•˜κ³  μ‹ΆμŠ΅λ‹ˆκΉŒ? CONTRIBUTING.mdλ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

@bitwiseman λΆˆν–‰νžˆλ„ λ‚˜λŠ” 이런 μ’…λ₯˜μ˜ ν”„λ‘œμ νŠΈλ‚˜ μ‹œκ°„μ— λŒ€ν•œ κ²½ν—˜μ΄ μ—†μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‚΄ μ§ˆλ¬Έμ€ λͺ¨λ“  μ‚¬λžŒλ“€μ΄ 일반 CSSλ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ ν˜„μž¬ ν˜•μ‹μ΄ μž‘λ™ν•˜λŠ” 방식을 κ³ μˆ˜ν•˜κ³  μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. 그것은 μ•„μ£Ό μ˜€λž˜λ˜μ—ˆμ§€λ§Œ ν•΄κ²°ν•˜κΈ° μ‰¬μš΄ λ¬Έμ œμ— λŒ€ν•΄ μ΄μƒν•©λ‹ˆλ‹€.

@sickboy 이거 ν•˜κ³  μžˆλ‹ˆ? μ•„λ§ˆ 아무도 이것에 λŒ€ν•΄ ν™œλ™ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ κ²°κ΅­ λ‚΄κ°€ 그것을 λ‹€λ£° κ²ƒμž…λ‹ˆλ‹€. "max_preserve_newlines"의 λͺ‡ 가지 μ΄μƒν•œ λ™μž‘μ„ μ œμ™Έν•˜κ³ , 이것은 λ‚΄κ°€ λ―Έν™” μ‚¬μš©μ„ μ™„μ „νžˆ λ°©ν•΄ν•˜λŠ” μœ μΌν•œ λˆ„λ½λœ κ²ƒμž…λ‹ˆλ‹€.

pull request #1117( css에 λŒ€ν•΄ reserved_newlines μΆ”κ°€ )이 이에 도움이 될지 κΆκΈˆν•©λ‹ˆλ‹€.

@zimmerboy λ„€, ν˜„μž¬ λ¬Έμ œμ— λŒ€ν•œ μˆ˜μ • 사항인 것 κ°™μ§€λ§Œ 제 μƒκ°μ—λŠ” λ‹€λ₯Έ μ’…λ₯˜μž…λ‹ˆλ‹€.

#1117이 λ³‘ν•©λ˜λ‚˜μš”? 이 λ¬Έμ œλ„ ν•΄κ²°ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

@jorgeramirez - 이전 ν”Όλ“œλ°±μ— λŒ€ν•œ μˆ˜μ • 사항을 기닀리고 μžˆμŠ΅λ‹ˆλ‹€.

@bitwiseman λŒ€λ‹¨ν•©λ‹ˆλ‹€!

μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

@royduin - μ΅œμ‹  릴리슀둜 ν…ŒμŠ€νŠΈν•˜μ‹­μ‹œμ˜€.

잘 μž‘λ™ν•˜λŠ” 것 κ°™μ§€λ§Œ λŒ“κΈ€μ— μ•½κ°„μ˜ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. Bootstrap SCSSκ°€ 쒋은 μ˜ˆλŠ” μ•„λ‹ˆμ§€λ§Œ μ—¬μ „νžˆ κ·Έλ ‡μŠ΅λ‹ˆλ‹€.

λ¦¬ν¬μ§€ν† λ¦¬μ—μ„œ μ½”λ“œ ν˜•μ‹μ΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
image

그리고 이것은 λ―Έν™” ν›„μž…λ‹ˆλ‹€.
image

μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•˜μ§€λ§Œ 주석이 이전 μ„ μ–Έκ³Ό κ²ΉμΉ˜μ§€λ§Œ 주석 ν˜•μ‹μ΄ μ˜¬λ°”λ₯΄κ²Œ μ§€μ •λ˜λ©΄ μ œλŒ€λ‘œ μž‘λ™ν•©λ‹ˆλ‹€.
image

λ‹€μ‹œ λ§ν•˜μ§€λ§Œ μ‹€μ œλ‘œ μ€‘μš”ν•œ 것은 μ•„λ‹ˆμ§€λ§Œ Bootstrap은 널리 μ‚¬μš©λ©λ‹ˆλ‹€.

@stgogm
μƒˆ 문제λ₯Ό μ œμΆœν•˜μ‹­μ‹œμ˜€.
λ˜ν•œ 이미지가 μ•„λ‹Œ ν…μŠ€νŠΈλ₯Ό ν¬ν•¨ν•˜μ‹­μ‹œμ˜€.

@bitwiseman λ„€, μ£„μ†‘ν•©λ‹ˆλ‹€. SCSS λ¦°ν„° κ·œμΉ™μ„ μ‘΄μ€‘ν•œλ‹€λ©΄ μ‹€μ œλ‘œ λ¬Έμ œκ°€ λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 점을 μ–ΈκΈ‰ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€.

@stgogm - 멋진 정보 κ°μ‚¬ν•©λ‹ˆλ‹€. πŸ˜„

@stgogm 을 μ„€μ •ν•˜λŠ” λ™μ•ˆ μ€‘μ²©λœ newline_between_rules 문제λ₯Ό ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆκΉŒ? 와 ν•¨κ»˜

newline_between_rules: true

λ‹Ήμ‹ μ˜

fieldset {
    border: 0;
    margin: 0;
    min-width: 0;
    padding: 0;
    &+fieldset {
        margin-top: $padding-large;
    }
}

~μ΄λ˜λ‹€

fieldset {
    border: 0;
    margin: 0;
    min-width: 0;
    padding: 0;

    &+fieldset {
        margin-top: $padding-large;
    }
}

?

μ‹€μ œλ‘œ 차이가 μ—†μŠ΅λ‹ˆλ‹€.

μž‘μ„±λœ μ½”λ“œ(사이에 μƒˆ 쀄 μ—†μŒ):

form {
  display: block;
}

fieldset {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
  & + fieldset {
    margin-top: $padding-large;
  }
}

"newline_between_rules": false κΎΈλ―ΈκΈ° ν›„:

form {
  display: block;
}

fieldset {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
  &+fieldset {
    margin-top: $padding-large;
  }
}

"newline_between_rules": true κΎΈλ―ΈκΈ° ν›„ :

form {
  display: block;
}

fieldset {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
  &+fieldset {
    margin-top: $padding-large;
  }
}

+ μ‚¬μ΄μ˜ 곡백을 μ œκ±°ν–ˆμŠ΅λ‹ˆλ‹€.

js-beautify --version
1.6.12

@stgogm κ°μ‚¬ν•©λ‹ˆλ‹€! μ•„λ‹ˆ @bitwiseman #1146이 이 문제λ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

"newline_between_rules"κ°€ SCSS에 μΆ©λΆ„ν•˜μ§€ μ•Šμ€ 또 λ‹€λ₯Έ 예:

$variable: #333;
div {
  display: none;
}

이 SCSSλ₯Ό ν¬λ§·ν•˜λ©΄ λ³€μˆ˜μ™€ div 선택기 사이에 μƒˆ 쀄이 μΆ”κ°€λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 κΈ°λŠ₯을 μ–Έμ œ μ‚¬μš©ν•  수 μžˆλŠ”μ§€ λͺ…ν™•ν•©λ‹ˆκΉŒ?

μ–΄λ–€ 진전이 μžˆμŠ΅λ‹ˆκΉŒ?

@dhghani-mehdi @whxaxes
이 κΈ°λŠ₯은 ν• λ‹Ήλ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 이λ₯Ό κ΅¬ν˜„ν•˜κ³  ν…ŒμŠ€νŠΈλ₯Ό μΆ”κ°€ν•  μ‚¬λžŒμ΄ ν•„μš”ν•©λ‹ˆλ‹€.

+1

+1

+1

+1

+1

κ΅¬λ…μžμ—κ²Œ μŠ€νŒΈμ„ μ „μ†‘ν•˜μ§€ μ•ŠλŠ” +1 λ©”μ‹œμ§€κ°€ μ•„λ‹Œ 초기 κ²Œμ‹œλ¬Όμ— πŸ‘ λ°˜μ‘μœΌλ‘œ νˆ¬ν‘œν•˜μ„Έμš”. 감사 ν•΄μš”!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰