Handlebars.js: Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ символ {{ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 17 сСнт. 2018  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: handlebars-lang/handlebars.js

Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ шаблон ΠΈΠΌΠ΅Π΅Ρ‚ синтаксис JSX, ΠΈ любой { Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкам, ΠΈ любая конфигурация Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ символ {
Π― Π½Π΅ нашСл Π΅Π³ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, я Π±Ρ‹Π» нСдостаточно остороТСн.

 // such
 style={{ textAlign: 'right' }}

 render() {
    return (
      <Form
        className="ant-advanced-search-form"
        onSubmit={this.handleSearch}
      >
        <Row gutter={24}>{this.getFields()}</Row>
        <Row>
          <Col span={24} style={{ textAlign: 'right' }}>
            <Button type="primary" htmlType="submit">Search</Button>
            <Button style={{ marginLeft: 8 }} onClick={this.handleReset}>
              Clear
            </Button>
          </Col>
        </Row>
      </Form>
    );
  }

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ {{ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹: \{{ , Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ символ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Если я ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ понимаю, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ синтаксис Ρ€ΡƒΠ»Π΅ΠΉ измСнился с {{expression}} Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π΅Π³, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ [[expression]] ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ^&expression&^ ?

Π― Π½Π΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π½ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ handlebars ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ lex ΠΈ yacc:

https://github.com/wycats/handlebars.js/blob/master/src/handlebars.l

Π­Ρ‚ΠΎ Ρ„Π°ΠΉΠ» lex, ΠΎΠ½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ тСкст Π² Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ символы для использования Π² синтаксичСском Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ (yacc). Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с Ρ€ΡƒΠ»Π΅ΠΌ, Π²Π°ΠΌ придСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ экзСмпляры {{ ΠΈ }} Π² рСгулярных выраТСниях вашим ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ синтаксисом.

Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, ΠΊΠ°ΠΊΠΎΠΉ синтаксис lex ΠΈ yacc ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнными рСализациями Π² наши Π΄Π½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ flex ΠΈ byacc.

Если я ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ понимаю, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ синтаксис Ρ€ΡƒΠ»Π΅ΠΉ измСнился с {{expression}} Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π΅Π³, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ [[expression]] ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ^&expression&^ ?

Π― Π½Π΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π½ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ handlebars ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ lex ΠΈ yacc:

https://github.com/wycats/handlebars.js/blob/master/src/handlebars.l

Π­Ρ‚ΠΎ Ρ„Π°ΠΉΠ» lex, ΠΎΠ½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ тСкст Π² Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ символы для использования Π² синтаксичСском Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π΅ (yacc). Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с Ρ€ΡƒΠ»Π΅ΠΌ, Π²Π°ΠΌ придСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ экзСмпляры {{ ΠΈ }} Π² рСгулярных выраТСниях вашим ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ синтаксисом.

Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, ΠΊΠ°ΠΊΠΎΠΉ синтаксис lex ΠΈ yacc ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнными рСализациями Π² наши Π΄Π½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ flex ΠΈ byacc.

Π”Π°, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡ΠΈΡ‚. Как Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ вмСсто прСдоставлСния внСшнСго интСрфСйса.
Mustache прСдоставляСт Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ интСрфСйс.
ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚Π΅ мою ΠΏΠ»ΠΎΡ…ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π½Π° английский язык.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ {{ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹: \{{ , Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ символ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ