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

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

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

Post by John Doe » Mon 20 Sep, 2010 14:13

Заметил, что Энциклопедия как-то непоследовательно обращается с 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

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

Post by Centaur » Mon 20 Sep, 2010 15:51

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

Правило простое:
  • в атрибутах, записанных в кавычках, нельзя использовать неэкранированные символы < & ";
  • в атрибутах, записанных в апострофах — символы < & ';
  • в атрибутах, записанных без ограничителей, можно использовать только [-.:_0-9a-ZA-Z];
  • в простом тексте нельзя использовать неэкранированные < &; " и ' можно.
  • > можно использовать везде, но из соображений симметрии его обычно экранируют.
  • Если нужно записать большой блок текста, часто использующий < и/или &, имеет смысл заключить его весь в <![CDATA[…]]> вместо того, чтобы заменять каждое вхождение < и &.

User avatar
John Doe
Бюрократ
Posts: 11421
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

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

Post by John Doe » Mon 20 Sep, 2010 20:00

Спасибо!
Centaur wrote:в простом тексте нельзя использовать неэкранированные < &; " и ' можно.
Значит поудаляю избыточное экранирование.
Centaur wrote:Правильная Утилита — validator.w3.org.
А нет ли менее правильной, зато более локальной и допускающей пакетную обработку?
Centaur wrote:В идеале, HTML должен валидироваться в режиме HTML 4.01 Strict или XHTML 1.0 Strict.
Файлы определены как
За переделку не возьмусь, образования не хватит.

User avatar
John Doe
Бюрократ
Posts: 11421
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

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

Post by John Doe » Mon 20 Sep, 2010 21:46

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 » Mon 20 Sep, 2010 22:14

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 » Mon 20 Sep, 2010 22:36

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

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

Post by Centaur » Tue 21 Sep, 2010 04:13

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

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

Все элементы, про которые в спецификации не сказано «End tag: forbidden», следует закрывать. Даже если сказано «optional».

User avatar
ctapmex
Posts: 990
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 2 times
Contact:

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

Post by ctapmex » Tue 21 Sep, 2010 05:10

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

User avatar
John Doe
Бюрократ
Posts: 11421
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

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

Post by John Doe » Tue 21 Sep, 2010 22:18

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: 4872
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Contact:

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

Post by t-rex » Tue 21 Sep, 2010 22:22

Ещё как работает, &nbsp; надо вместо пробелов ставить.

User avatar
John Doe
Бюрократ
Posts: 11421
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

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

Post by John Doe » Tue 21 Sep, 2010 22:44

См. viewtopic.php?p=69005#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 » Tue 21 Sep, 2010 23:12

John Doe wrote:Попробовал <div style="white-space:nowrap">. В середине-то хорошо, но сам div получается в отдельной строке.
Попробуй <span style="white-space:nowrap"> - так работает в строке. Ну или если смотреть на css, <span class="nobr"> - он уже там описан.
А &nbsp; тоже работало, только перенос строки на знаке процента был.

User avatar
John Doe
Бюрократ
Posts: 11421
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

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

Post by John Doe » Tue 21 Sep, 2010 23:26

g_max wrote:Попробуй <span style="white-space:nowrap"> - так работает в строке.
Отлично!
g_max wrote:Ну или если смотреть на css, <span class="nobr"> - он уже там описан.
В оригинале не описан, но прописать стоит.

User avatar
John Doe
Бюрократ
Posts: 11421
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

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

Post by John Doe » Tue 21 Sep, 2010 23:29

В Энциклопедии практикуется смесь <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 » Wed 22 Sep, 2010 01:28

Лучше <br />

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia

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

Post by Centaur » Wed 22 Sep, 2010 05:47

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

P.S.
Мануалы смотрел, но не имея практики применения трудно представить.
<p>…</p> — это один абзац текста. Их можно использовать в том числе и в таблицах, и в списках.

<br> — это перенос строки внутри абзаца. Черновик спецификации HTML5 говорит:
HTML5 wrote: br elements must be used only for line breaks that are actually part of the content, as in poems or addresses.

The following example is correct usage of the br element:

Code: Select all

<p>P. Sherman<br>
42 Wallaby Way<br>
Sydney</p>
br elements must not be used for separating thematic groups in a paragraph.

<br /> — это XHTML’ная форма <br>. Если в начале файла сказано

Code: Select all

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
пишем <br />, <hr />, <img alt="…" src="…" />; если

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
— пишем <br>, <hr>, <img alt="…" src="…">.

Post Reply

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