Возможно ли создать HTML-курс?
В заголовке возможно ли создать (нетривиальный) quine в HTML?
Мое определение HTML-запроса:
Нетривиальный HTML-класс - это тот, который не является нулевым и использует хотя бы один тег HTML, в предположении, что некоторая строка в HTML файле отображается браузером как обычный текст. HTML-код определяется так, что вывод q.html
, отображаемый стандартным браузером, представляет собой содержимое самого q.html
.
(Я открыт для комментариев по этому определению, я как бы взломал его прямо сейчас)
HTML не завершается, поэтому теорема о неподвижной точке не может быть применена, чтобы доказать, что она действительно возможна.
Однако это не обязательно означает, что HTML-курс невозможен. Или на самом деле можно доказать, что HTML-курс невозможен?
Ответы
Ответ 1
Это, конечно, невозможно с "простым" HTML. Очевидно, это можно было бы сделать с JavaScript, но это также возможно с CSS:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>This is the title</title>
<style type="text/css"><![CDATA[
* {
display:inline;
white-space:pre;
}
html:last-child {
white-space:normal;
}
html:before {content:'<html xmlns="http://www.w3.org/1999/xhtml">';}
html:after {content:'</html>';}
head:before {content:'<head>';}
head:after {content:'</head>';}
title:before {content:'<title>';}
title:after {content:'</title>';}
style:before {content:'<style type="text/css"><![CDATA[';}
style:after {content:']]\00003e</style>';}
body:before {content:'<body/>';position:absolute;left:0;}
]]></style>
</head>
<body/>
</html>
Ответ 2
Это невозможно. Поскольку каждый неэкранированный элемент будет интерпретироваться как разметка браузером, браузер попытается отобразить или обработать содержимое этих элементов или как элемент управления. Вы не можете отобразить элемент, который каким-то образом не экранирован, например, с тегом <pre>
. Но тогда такие теги также не будут отображаться.
Конечно, вы могли бы использовать его как text/plain с соответствующими заголовками HTTP, но тогда это не HTML. Просто использование расширения .html заставит браузеры отображать его как html в любом случае в большинстве (всех?) Случаях.
Ответ 3
Я знаю, что на этот вопрос уже давно дан ответ, но я хотел оставить эту ссылку здесь, потому что я нашел этот вопрос при поиске ссылки.
Да, это возможно: https://secretgeek.github.io/html_wysiwyg/html.html
Ответ 4
Конечно, точно так же, как со всем HTML "what ifs", ответ просто используется JQuery!