|
1 |
| -# Копаем глубже |
| 1 | +# Let's dig in |
2 | 2 |
|
3 |
| -## Множества |
| 3 | +## Multiplicity |
4 | 4 |
|
5 |
| -Для некоторых сущностей, например элементов списка или просто последовательности одинаковых блоков характерно множественное появление. |
| 5 | +Multiplicity happens to be typical for some substances, e.g. list elements or some blocks sequence. |
6 | 6 |
|
7 |
| -В CSSG это будет выглядеть так: |
| 7 | +In CSSG it will look like this: |
8 | 8 |
|
9 |
| - |
10 |
| - /* |
| 9 | + /* |
11 | 10 |
|
12 | 11 | post_cnt
|
13 | 12 | post_cnt_ul
|
14 | 13 | post_cnt_li +
|
15 | 14 |
|
16 | 15 | */
|
17 | 16 |
|
18 |
| -или так |
| 17 | +or like that: |
19 | 18 |
|
20 | 19 | /*
|
21 | 20 |
|
|
24 | 23 |
|
25 | 24 | */
|
26 | 25 |
|
27 |
| -Ключевое отличие '+' и '*' - в специфике множества. |
28 |
| -'+' указывает, что элемент появится хотя бы один раз (характерно для элементов списка - \<li\>) |
29 |
| -'*' указывает, что элемент появится 0 и более раз (относится как правило ко всем остальным элементам) |
| 26 | +The main difference between '+' and '*' is in multiplicity specifics. |
| 27 | +'+' says that element will appear at least 1 time (which is typical for list items - \<li\>) |
| 28 | +'*' however says that element may appear more than 0 times (any other elements - you name it) |
30 | 29 |
|
31 |
| -> важно понимать разницу между опциональным появлением ([element]) и появлением 0 и более раз (element *) |
32 |
| -> на первый взгляд отличие незначительное, но в контексте все встает на свои места |
| 30 | +> it's important to feel the distinction between optional elements ([element]) and appearing 0 and more times (element *) |
| 31 | +> insignificant on the first sight, it appears to have contextual meaning |
33 | 32 |
|
34 |
| -## Модификаторы - больше и удобнее |
| 33 | +## Modificators - more and meaningful |
35 | 34 |
|
36 |
| -Как было указано в [basic.md](basic.md), модификаторы дополняют сущность и теоретически возможно их одновременное появление. |
37 |
| -Необходимая логика описывается дополнительным синтаксисом. |
| 35 | +As it was mentioned in [basic.md](basic.md), modificators complement substance and theoretically their simultaneous presence is possible. |
| 36 | +Crucial logic described with the help of special syntax. |
38 | 37 |
|
39 |
| -Взаимоисключение выглядит следующим образом: |
| 38 | +For example, alternative is illustrated this way: |
40 | 39 |
|
41 | 40 | /*
|
42 | 41 |
|
43 | 42 | post ( __current | __regular ) __deleted
|
44 | 43 |
|
45 | 44 | */
|
46 | 45 |
|
47 |
| -и даже так: |
| 46 | +and even like this: |
48 | 47 |
|
49 | 48 | /*
|
50 | 49 |
|
51 | 50 | post ( ( __current | __regular ) | __compact ) __deleted
|
52 | 51 |
|
53 | 52 | */
|
54 | 53 |
|
55 |
| -Когда класс жестко связан с модификатором (бесполезен или не используется без него), это указывается через точку: |
| 54 | +Dot (.) illustrates robust connection between class and another class or modificator |
56 | 55 |
|
57 | 56 | /*
|
58 | 57 |
|
|
65 | 64 |
|
66 | 65 | */
|
67 | 66 |
|
68 |
| -> отбивка по правому краю для привязанного класса не нужна |
| 67 | +> alignment on the right for connected class is not necessary |
69 | 68 |
|
70 |
| -## Наследование |
| 69 | +## Inheritance |
71 | 70 |
|
72 |
| -Сущность может быть прямым наследником другой сущности. |
73 |
| -Чтобы обозначить это, указывает "родителя" через @. |
| 71 | +Substance can be direct descendant of other substance. |
| 72 | +To point this out, define ancestor via "@" symbol. |
74 | 73 |
|
75 | 74 | /*
|
76 | 75 |
|
|
80 | 79 |
|
81 | 80 | */
|
82 | 81 |
|
83 |
| -> не обязательно перечислять модификаторы, поскольку они наследуются по умолчанию |
84 |
| -> однако если есть отличия, необходимо перечислить все возможные классы |
85 |
| -> по умолчанию принятно, что указанные модификаторы будут являться единственно возможными |
| 82 | +> it's not necessary to list all modificators, because they inherited by default |
| 83 | +> however, if there is any difference, we must list all possible classes |
| 84 | +> it's accepted that these defined modificators will only be possible |
86 | 85 |
|
87 |
| -Например, в этом примере **post-advanced** будет иметь один возможный модификатор **__new**, несмотря на наличие модификаторов у **post** |
| 86 | +For instance, it is illustrated in the following code, that **post-advanced** will have one possible modificator **__new**, regardless the fact, that **post** has some modificators as well |
88 | 87 |
|
89 | 88 | /*
|
90 | 89 |
|
|
94 | 93 |
|
95 | 94 | */
|
96 | 95 |
|
97 |
| -## Условная шаблонизация |
| 96 | +## Nominal templates |
98 | 97 |
|
99 |
| -Наследование напрямую связано с условной шаблонизацией. |
100 |
| -Указывая в родительской сущности изменяемые части, мы упрощаем описание потомственной сущности и избегаем дублирования кода. |
101 |
| -Это не обязательная, но удобная практика, если таких сущностей как минимум две. |
| 98 | +Inheritance is directly connected with nominal templates. |
| 99 | +We simplify illustration of descendant substance and avoid code duplication by setting changeable parts in ancestor substance. |
| 100 | +This is not mandatory, but turns out to be helpful if you have at least two such substances. |
102 | 101 |
|
103 |
| -Например, родительская сущность выглядит так: |
| 102 | +As an example, let's say ancestor substance looks like this: |
104 | 103 |
|
105 | 104 | /*
|
106 | 105 |
|
|
109 | 108 | % content %
|
110 | 109 |
|
111 | 110 | */
|
112 |
| - |
113 |
| -или так, если существует содержимое по умолчанию |
| 111 | + |
| 112 | +or like this, if there is any default content |
114 | 113 |
|
115 | 114 | /*
|
116 | 115 |
|
|
121 | 120 |
|
122 | 121 | */
|
123 | 122 |
|
124 |
| -потомственная сущность |
| 123 | +descendant substance |
125 | 124 |
|
126 | 125 | /*
|
127 | 126 |
|
|
133 | 132 |
|
134 | 133 | */
|
135 | 134 |
|
136 |
| -> когда шаблон "раскрывается", второй символ % не пишем |
| 135 | +> when "filling" the template second % symbol is unnecessary |
137 | 136 |
|
138 |
| -В этом случае **post-advanced\_cnt** будет находится внутри **post\_cnt** и перепишет контент по умолчанию из второго примера. |
139 |
| -Если не использовать шаблонизацию, то же самое можно записать так: |
| 137 | +In this case **post-advanced\_cnt** will be inside **post\_cnt** and will override default content from second code piece. |
| 138 | +Without nominal templates, CSSG may look like this: |
140 | 139 |
|
141 | 140 | /*
|
142 | 141 |
|
|
148 | 147 |
|
149 | 148 | */
|
150 | 149 |
|
151 |
| -В данном случае разницы почти нет. |
152 |
| -Но достаточно рассмотреть пример в контексте громоздкой структуры, чтобы ощутить все преимущества записи. |
| 150 | +There's almost no difference in this case. |
| 151 | +However all notation potential can be seen in context of describing more complex structure |
153 | 152 |
|
154 |
| -> элемент **% content %** в разметке не имеет DOM-воплощения, это просто название шаблона |
| 153 | +> the **% content %** element has no DOM implementation, it is just a template name |
155 | 154 |
|
156 |
| -## Динамика |
| 155 | +## Dynamics |
157 | 156 |
|
158 |
| -Под динамикой понимается появление того или иного класса или элемента в процессе отработки скриптов и/или в результате действий пользователя. |
| 157 | +By dynamics it's meant that some class or element may appear in layout due to scripts and user activity. |
159 | 158 |
|
160 | 159 | /*
|
161 | 160 |
|
|
166 | 165 |
|
167 | 166 | */
|
168 | 167 |
|
169 |
| -Для обозначения динамических блоков используется дополненный существующий синтаксис опциональных частей: |
| 168 | +To define dynamic blocks complemented syntax for optional parts is used: |
170 | 169 |
|
171 | 170 | /*
|
172 | 171 |
|
|
183 | 182 |
|
184 | 183 | ## It's <<omplicated
|
185 | 184 |
|
186 |
| -Сложные решения в CSS тоже можно иллюстрировать с помощью CSSG. |
| 185 | +Complex CSS approach can be described with CSSG. |
187 | 186 |
|
188 |
| -Ситуация с взаимоисключающими блоками: |
| 187 | +Alternative (mutual exclusive) blocks example: |
189 | 188 |
|
190 | 189 | /*
|
191 | 190 |
|
|
202 | 201 |
|
203 | 202 | */
|
204 | 203 |
|
205 |
| -Нужно указать наличие какого-либо ключевого класса где-то высоко в DOM: |
| 204 | +When it's necessary to illustrate some valueable class somewhere high in DOM tree: |
206 | 205 |
|
207 | 206 | /*
|
208 | 207 |
|
|
216 | 215 |
|
217 | 216 | */
|
218 | 217 |
|
219 |
| -CSSG _как правило_ само-демонстративен, но в особо сложных ситуациях не обойтись без комментариев: |
| 218 | +CSSG is self-explanatory _as a rule_, but some tough situations may require comments: |
220 | 219 |
|
221 | 220 | /*
|
222 | 221 |
|
|
0 commit comments