api.farmanager.com: валидизация html

Здесь можно обсудить сайт Far Manager и предложить идеи по его дальнейшему развитию.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

api.farmanager.com: валидизация html

Post by John Doe »

Заметил, что Энциклопедия как-то непоследовательно обращается с HTML-сущностями, например с кавычкой " = "

Code: Select all

<pre class=code>$if (Env("FARLANG") == "English") <em>что-то делаем</em> $end</pre>
...
<pre class=code>%%GlobalVars="Foo Bar"; %a=msave("%%GlobalVars");</pre>
Чего делать-то?

Точнее: посоветуйте правильную утилиту для проверки корректности HTML.
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: Энциклопедия: улучшение раздела о макросах

Post by Centaur »

Правильная Утилита — validator.w3.org. В идеале, HTML должен валидироваться в режиме HTML 4.01 Strict или XHTML 1.0 Strict.

Правило простое:
  • в атрибутах, записанных в кавычках, нельзя использовать неэкранированные символы < & ";
  • в атрибутах, записанных в апострофах — символы < & ';
  • в атрибутах, записанных без ограничителей, можно использовать только [-.:_0-9a-ZA-Z];
  • в простом тексте нельзя использовать неэкранированные < &; " и ' можно.
  • > можно использовать везде, но из соображений симметрии его обычно экранируют.
  • Если нужно записать большой блок текста, часто использующий < и/или &, имеет смысл заключить его весь в <![CDATA[…]]> вместо того, чтобы заменять каждое вхождение < и &.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Энциклопедия: улучшение раздела о макросах

Post by John Doe »

Спасибо!
Centaur wrote:в простом тексте нельзя использовать неэкранированные < &; " и ' можно.
Значит поудаляю избыточное экранирование.
Centaur wrote:Правильная Утилита — validator.w3.org.
А нет ли менее правильной, зато более локальной и допускающей пакетную обработку?
Centaur wrote:В идеале, HTML должен валидироваться в режиме HTML 4.01 Strict или XHTML 1.0 Strict.
Файлы определены как
За переделку не возьмусь, образования не хватит.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Энциклопедия: улучшение раздела о макросах

Post by John Doe »

Centaur wrote:в простом тексте нельзя использовать неэкранированные < &; " и ' можно.
1. Валидатор не видит ошибки в наличии неэкранированного &
2. Валидатор не принимает <nobr>
Кто виноват и что делать?

P.S.
Теги <p>, <li> в основном не закрыты, но попадаются и закрытые.
Как делать?
User avatar
Px
Posts: 826
Joined: Fri 08 Sep, 2006 15:52
Location: Вишнёвый (под Киевом)
Contact:

Re: Энциклопедия: улучшение раздела о макросах

Post by Px »

John Doe wrote:2. Валидатор не принимает <nobr>
Валидация
Этот тег не входит в спецификацию HTML и его наличие приведет к невалидному коду.
PS: рекомендуют такую замену - http://www.htmlhelp.com/reference/css/c ... space.html
g_max
Posts: 88
Joined: Mon 20 Mar, 2006 15:19
Location: Винница

Re: Энциклопедия: улучшение раздела о макросах

Post by g_max »

1. http://www.w3.org/TR/html4/charset.html говорит: Authors should use "&" (ASCII decimal 38) instead of "&" to avoid confusion with the beginning of a character reference (entity reference open delimiter). Authors should also use "&" in attribute values since character references are allowed within CDATA attribute values.
Т.е. он валидный, но возможна ситуация, когда после амперсанда будет текст, который браузер поймёт как код символа.

2. Можно в тех местах в энциклопедии, где nobr есть и нужен, поменять пробелы на &nbsp; - там пара штук всего.
В остальных - убрать.

<p>, <li> - http://msdn.microsoft.com/en-us/library ... _Your_Tags советует закрывать.
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Re: Энциклопедия: улучшение раздела о макросах

Post by Centaur »

John Doe wrote:
Centaur wrote:Правильная Утилита — validator.w3.org.
А нет ли менее правильной, зато более локальной и допускающей пакетную обработку?
HTML Tidy, но мне помнится, она иногда расходится с Валидатором.

<nobr> — нестандартное расширение. Я вот сейчас не могу с ходу придумать, для чего оно было бы нужно. Либо у нас кусок программного кода, который должен быть заключён в <pre>…</pre>, либо это текст, который можно переносить. В тех местах, где переносить нельзя (например, посреди «и т. д.») должны стоять &nbsp;.

Все элементы, про которые в спецификации не сказано «End tag: forbidden», следует закрывать. Даже если сказано «optional».
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Re: Энциклопедия: улучшение раздела о макросах

Post by ctapmex »

John Doe wrote:
Centaur wrote:Правильная Утилита — validator.w3.org.
А нет ли менее правильной, зато более локальной и допускающей пакетную обработку?
CSE HTML Validator Lite
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Энциклопедия: улучшение раздела о макросах

Post by John Doe »

Px wrote:
John Doe wrote:2. Валидатор не принимает <nobr>
PS: рекомендуют такую замену - http://www.htmlhelp.com/reference/css/c ... space.html
Попробовал <div style="white-space:nowrap">. В середине-то хорошо, но сам div получается в отдельной строке.
Centaur wrote:В тех местах, где переносить нельзя (например, посреди «и т. д.») должны стоять &nbsp;.
Это не работает.
Пробовал IE, Opera.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: api.farmanager.com: валидизация html

Post by t-rex »

Ещё как работает, &nbsp; надо вместо пробелов ставить.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: api.farmanager.com: валидизация html

Post by John Doe »

См. http://forum.farmanager.com/viewtopic.p ... 005#p69005, Технические подробности, внизу страницы.

Code: Select all

    <td class="cont" width="10%">%a&nbsp;%b&nbsp;%d&nbsp;%H:%M:%S&nbsp;%Z&nbsp;%Y</td>
g_max
Posts: 88
Joined: Mon 20 Mar, 2006 15:19
Location: Винница

Re: Энциклопедия: улучшение раздела о макросах

Post by g_max »

John Doe wrote:Попробовал <div style="white-space:nowrap">. В середине-то хорошо, но сам div получается в отдельной строке.
Попробуй <span style="white-space:nowrap"> - так работает в строке. Ну или если смотреть на css, <span class="nobr"> - он уже там описан.
А &nbsp; тоже работало, только перенос строки на знаке процента был.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Энциклопедия: улучшение раздела о макросах

Post by John Doe »

g_max wrote:Попробуй <span style="white-space:nowrap"> - так работает в строке.
Отлично!
g_max wrote:Ну или если смотреть на css, <span class="nobr"> - он уже там описан.
В оригинале не описан, но прописать стоит.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: api.farmanager.com: валидизация html

Post by John Doe »

В Энциклопедии практикуется смесь <br> и <p>.
В таблицах везде <br>.
Существуют ли на этот счёт какие-нибудь рекомендации?
И как лучше <br> или <br /> ?

P.S.
Мануалы смотрел, но не имея практики применения трудно представить.
User avatar
Px
Posts: 826
Joined: Fri 08 Sep, 2006 15:52
Location: Вишнёвый (под Киевом)
Contact:

Re: api.farmanager.com: валидизация html

Post by Px »

Лучше <br />
Post Reply

Return to “Обсуждение www.farmanager.com”