Куча говна / Говнокод #21773 Ссылка на оригинал

0

  1. 1
<item >1</item>

Чо, так можно?

Запостил: 3_14dar 3_14dar, (Updated )

Комментарии (60) RSS

  • Раз не доперли сами, уточню - пробел после имени тега.
    Ответить
      • >>"А я подумал, что это код на языке J, и решил не влезать."<<
        Где здесь J, inkanus-gray?
        Ответить
    • > Чо, так можно?
      > пробел после имени тега
      Ну и зачем ты парсишь HTML регулярками?
      <item >1</item >
      Ответить
        • Вот из принципа буду добавлять везде пробелы, чтобы 3_14dar'ские парсеры об мой сайт зубы обломали.
          Ответить
          • В питоне даже DOM не нужен: есть бьютифул суп который HTML парсит как конфетка.

            А потом Сёма узнает что есть незакрытые таги и юникод и комментарии
            Ответить
            • Он не только есть, через него еще и кооперировались в конфочку, пока говнокод две недели лежал.
              Ответить
                • Потому что ты свой сайт не пиаришь. Закажи рекламу в директе, проспамь ссылками на сосаче.
                  Ответить
                    • Ну там зеленым написано, присмотрись.
                      А вообще, можно было бы и поспамить говнокод ссылкой. Глядишь, в конфе было бы больше 3.5 анонов неймфагов.
                      Ответить
          • > </item >
            Хм, и так можно? Но по какой логике? Про открывающийся тэг проде Инканус разъяснил.

            > из принципа буду добавлять везде пробелы
            Мощный ультиматум. Уже вижу, как 3_14dar надевает кастет, шубу и едет в Сибирь.
            Ответить
            • Проще отсюда заказать. За пару пособий борманда в лесу прикопают, а когда рублик еще упадет - так тем более.

              >об мой сайт
              Деревенский сортир обаме и меркель вход запрещен.jpg
              Ответить
            • Возможность вставки пробела в закрывающий тег и меня удивила... но так можно по стандарту, хотя у закрывающего тега не может быть атрибутов.

              Вероятно, разрешение на вставку пробелов появилось в процессе унификации. В XML для элемента без содержимого вместо такого кода:
              <item class="malo_pol" ></item>
              Разрешили писать такой код:
              <item class="malo_pol" />
              А раз у открывающего тега и у «самозакрытого» тега пробелы разрешены, то почему бы их не разрешить у закрывающего.
              Ответить
              • тащемта зависит от стандарта. в HTML обычно присутствуют теги типа <hr><br>, а вот в XHTML они обязательно должны быть закрыты <hr/> <br/>, и аттрибуты с маленькими буквами написаны, так же как и элементы.
                Ответить
                • И это очень хуёво, да.
                  Потому что раньше парсить HTML было проще, и статически проверять -- тоже.
                  А теперь можно случайно не закрыть таг, и узнать об этом через три месяца, когда всё поедет.

                  С другой стороны это же веб: в нем принято использовать максимально хуёвый инструмент из всех возможных.
                  Ответить
                  • > узнать об этом через три месяца, когда всё поедет.

                    Пропусти страничку через валидатор и будет счастье. "Случайно" оно не поедет, версия HTML указывается в DOCTYPE.
                    Ответить
                    • >>Пропусти страничку через валидатор и будет счастье
                      Правильно. Зачем иметь возможность проверять документ на валидность локально? Зачем там fast fail? Пусть это делает внешний сервис.

                      >>"Случайно" оно не поедет,
                      Случайно у тебя добавится текст на веб сайте, или будет другой резолюшен, и так как ты вообще не представляешь как и почему твой сайт работает (а если ты перепутал таги то ты не представляешь) то тебя ждет сюрприз.
                      Ответить
                      • > Пусть это делает внешний сервис.
                        Ты про вещи вроде tidy не слышал чтоли? Напиши себе интеграционный тест, который поднимает локальный сервер, запрашивает странички и валидирует на CI-сервере.
                        Ответить
                        • Ты это серьезно сейчас?

                          Во времена XHTML мне даже самый тупой IDE мог выстроить код в лесенку и подсветить красным пропущенный таг, в теперь мне нужно tidy использовать?

                          Какое у НЕ XML-based языка разметки преимущество кроме того, что дебилам с блокноатами сложно таги закрывать?
                          Ответить
                          • > раньше парсить HTML было проще
                            > Во времена XHTML

                            О каких временах XHTML ты говоришь? HTML изначально допускал незакрытые теги и кучу всяких вольностей. XHTML родился на волне увлечения XML, он никогда толком не был широко распространён. Он был настолько мертворождённым, что даже его создатели давно его забросили и пересели на HTML5.

                            Собственно, поэтому я и неправильно интерпретировал "раньше парсить html было проще".
                            Ответить
                            • >>О каких временах XHTML ты говоришь?
                              Примерно о середине нулевых

                              >>что даже его создатели давно его забросили и пересели на HTML5.
                              Вопрос в том, зачем было разрешать HTML5 а не XHTML5?
                              Запретили бы незакрытые таги, сказали бы что с незакрытым тагом все переключается в legacy loose mode, где всякие ваши говномодные <input type="date" не работают, и через пять лет всё везде бы закрывалось.

                              А теперь я хочу распарсить доку по джанге и конвернуть в нужный мне формат, и не могу сделать это каким-нить XSLем, потмоу что половина тагов там не закрыта.
                              Ответить
                              • Более того, у современных браузеров парсер совместим с HTML5, а конкретно со всяким говном, которое существовало де-факто, но было узаконено в HTML5, вроде автозакрытия тегов.

                                Я не могу вложить <ul> в <p>, потому что перед <ul> элемент <p> автоматически закроется. И это говно в популярных браузерах работает даже в режиме XHTML, хотя XHTML автозакрытия тегов не подразумевает.
                                Ответить
                                • >>даже в режиме XHTML
                                  Если указать правильный content-type (application/xhtml+xml ) и не закрыть таг, что IE покажет ошибку вместо страницы.

                                  К сожалению в мире не более ноля сайтов используют этот приём.
                                  Ответить
                                  • IE7 с настройками по умолчанию не показывал вообще ничего, если в качестве content-type был указан application/xhtml+xml. Приходилось править реестр, добавляя в него описание application/xhtml+xml.

                                    Вероятно, по этой причине многие сервера возвращают text/html вместо application/xhtml+xml даже для XHTML.
                                    Ответить
                                    • Веб это боль, ад, говно, костыли, хуёвые стандарты, и глупые разработчики.
                                      ------
                                      Веб нужно запретить у хуям, и разработать WEB 3.0.
                                      В нем будет специльный виртуальный машин, под который и верстать и писать можно будет на оче хорших языках
                                      Ответить
          • Лучше добавлять не пробелы, а табы и переносы строк, причём смешивать переносы строк в dos-style и в unix-style. Переносы строк на 95% безопаснее чем пробелы, стандартом не запрещены, ставлю где хочу.
            Ответить
    • Да поди высер какого-нибудь пыхошаблонизатора:
      <item <?=$attributes?>><?=$value?></item>
      Ответить
    • А почему этот пробел вообще должен беспокоить?

      Ребята, давайте вспомним, что бывает после имени элемента. После имени элемента могут следовать атрибуты, отделённые от имени элемента и друг от друга пробелами, а точнее, цепочками, определяемыми такой регуляркой:
      S	   ::=   	(#x20 | #x9 | #xD | #xA)+

      (в HTML ещё разрешён символ #xC).

      А теперь внимание! Что будет, если атрибутов нет? Подсказка: после последнего атрибута разрешён разделитель подобно тому, как лишний разделитель элементов массива в некоторых языках.
      Ответить
        • Чем это не регулярка? Ну разве что "S" и квадрояйцевый биписюн убрать осталось.
          Ответить
          • Ну регулярки обычно описываются в терминах POSIX ERE или PCRE. Ни там ни сям квадраяйца нету.

            С другой стороны регулярное выражение есть описание конечного автомата для разбора регулярной грамматики, а такой автомат и по BNF построить можно (и даже больше -- context free можно)

            Так что квадрояйца это не регулярка, это КРУЧЕ чем регулярка
            Ответить
            • > Так что квадрояйца это не регулярка, это КРУЧЕ чем регулярка
              Прошу заметить, квадрояйца только с рекурсией при некоторых условиях круче, чем регулярка.
              Ответить
              • Да, например когда нужен алгоритм с экспоненциальной сложностью

                на самом деле это зависит от реализаци
                Ответить
        • Так что всё просто: пробелы (переносы строк, символы табуляции) разрешены там, где разрешены атрибуты (и там, где должно находиться содержимое, но уже по другой причине).
          Ответить
        • теперь ты знешь, что у элементов XML могут быть атрибуты!
          Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8