Пакет Гибкости HTML был упомянут, прежде - если Вы идете для скорости, Вы могли бы также хотеть проверить Величественные 12 синтаксических анализаторов HTML . Его обработка является довольно неуклюжей, но это обеспечивает действительно быстрый опыт парсинга.
Я хочу, чтобы он получил файл png из домена, в котором был вызван файл CSS.
Вам нужно будет иметь отдельные URL-адреса для каждого указанного домена. Итак, www.example1.com
ссылается на свою таблицу стилей как /style/sheet.css
и, таким образом, берет ее с http://www.example1.com/style/sheet. css
, в то время как www.example2.com
получает его с http://www.example2.com/style/sheet.css
.
Но только потому, что они выглядят иначе со стороны клиента, что не означает, что они должны быть разными файлами на стороне сервера (со всем необходимым обслуживанием). Вы можете просто указать Псевдоним
в каждом домене на настоящий общий файл CSS.
Вы можете дублировать свой CSS-файл на каждом веб-сайте, используя серверный скрипт.
example1.com/global.css
- ваш CSS-файл
example2.com/ global.css.php
- это PHP-скрипт, который фактически возвращает файл global.css example1.com
Сценарий может быть таким же простым, как
<?php
readfile('http://example1.com/global.css');
?>
, но вам понадобится больше кода, если вы хотите обрабатывать кеширование лучше.
Самый быстрый вариант - у каждого сайта есть собственный CSS для ссылки на изображения относительно CSS
#header {
background: url(images/header.png);
}
Чтобы решить проблему с обновлением, после того, как вы выполнили обновление, вы можете настроить пакетный файл для копирования ваши изменения в необходимых местоположениях дочерних сайтов
Единственное решение, которое я могу придумать, - это использовать дополнительную таблицу стилей для каждого домена, в котором указаны изображения, специфичные для домена:
/* domain specific images */
#header {
background-image: url(/images/header.png);
}
Есть ли способ вставить домен с php в таблицу стилей при использовании "ссылки"?
например:
#header {
background: url('.$domain.'/images/header.png);
}
Я не уверен, как это могло бы работать, но, может быть, кто-то другой сможет взять мяч и кататься с ним! Будет ли использование такого трюка нарушить прогрессивный рендеринг в IE?
После подтверждения с помощью OO (плакат) я хотел добавить Flash в микс.
Flash имеет то преимущество, что у него действительно хорошая анти- алиасинг и отличная поддержка типографики (особенно с CS4). Вы можете выбрать, чтобы весь интерфейс был во Flash, где вы вводите узорчатые буквы напрямую, или просто чтобы swf отображал результат в соответствии с параметрами, определяющими имя и шаблон.
Лично я бы сделал все это во Flash, предоставив интерфейс с дополнительными шаблонами, например, с JSON.
Вы можете настроить вывод, указав свой собственный XSLT с помощью атрибута styledir
вложенного элемента отчета
:
<!-- use reportstyle/junit-frames.xsl to produce the report -->
<report styledir="reportstyle" format="frames" todir="testreport"/>
Для настройки вывода можно было бы сделать копию XSLT по умолчанию и измените ее. Или вы можете поискать альтернативный XSLT, который легче настроить для ваших целей.
Для небольших изменений может быть проще просто импортировать XSLT по умолчанию и переопределить любые шаблоны, которые вам нужно настроить. Например, чтобы добавить столбец для каждого теста, вам нужно будет переопределить шаблон, который создает заголовок таблицы, и шаблон, который создает строку таблицы. Ниже я только что скопировал эти шаблоны и немного изменил их, чтобы добавить один столбец (ищите два дополнения, отмеченные
).
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- import the default stylesheet -->
<xsl:import href="jar:file:lib/ant-junit.jar!/org/apache/tools/ant/taskdefs/optional/junit/xsl/junit-frames.xsl"/>
<!-- override the template producing the test table header -->
<xsl:template name="testcase.test.header">
<xsl:param name="show.class" select="''"/>
<tr valign="top">
<xsl:if test="boolean($show.class)">
<th>Class</th>
</xsl:if>
<th>Name</th>
<th>Status</th>
<th width="80%">Type</th>
<th nowrap="nowrap">Time(s)</th>
<!-- ADDED -->
<th>Screenshot</th>
</tr>
</xsl:template>
<!-- override the template producing a test table row -->
<xsl:template match="testcase" mode="print.test">
<xsl:param name="show.class" select="''"/>
<tr valign="top">
<xsl:attribute name="class">
<xsl:choose>
<xsl:when test="error">Error</xsl:when>
<xsl:when test="failure">Failure</xsl:when>
<xsl:otherwise>TableRowColor</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:variable name="class.href">
<xsl:value-of select="concat(translate(../@package,'.','/'), '/', ../@id, '_', ../@name, '.html')"/>
</xsl:variable>
<xsl:if test="boolean($show.class)">
<td><a href="{$class.href}"><xsl:value-of select="../@name"/></a></td>
</xsl:if>
<td>
<a name="{@name}"/>
<xsl:choose>
<xsl:when test="boolean($show.class)">
<a href="{concat($class.href, '#', @name)}"><xsl:value-of select="@name"/></a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@name"/>
</xsl:otherwise>
</xsl:choose>
</td>
<xsl:choose>
<xsl:when test="failure">
<td>Failure</td>
<td><xsl:apply-templates select="failure"/></td>
</xsl:when>
<xsl:when test="error">
<td>Error</td>
<td><xsl:apply-templates select="error"/></td>
</xsl:when>
<xsl:otherwise>
<td>Success</td>
<td></td>
</xsl:otherwise>
</xsl:choose>
<td>
<xsl:call-template name="display-time">
<xsl:with-param name="value" select="@time"/>
</xsl:call-template>
</td>
<!-- ADDED -->
<td>
<a href="link/to/screenshot/for/test/{@name}">screenshot</a>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
Здесь '