RSDN XML - в формат форума
От: nzeemin Россия http://nzeemin.livejournal.com/
Дата: 18.11.05 10:33
Оценка: 37 (3) +1
#Имя: FAQ.rsdn.forum.xslt


Что это

Это шаблон XSLT для преобразования из XML, полученного в результате создания статьи средствами Шаблона для верстки статей RSDN
Автор(ы): Брусенцев Виталий, Чистяков Владислав Юрьевич
Дата: 22.06.2011
Статья описывает шаблон для Microsoft Word предназначенный для верстки статей и преобразования их в формат RSDN ML. В статье рассматриваются вопросы использования шаблона.
.


Зачем это

Допустим, что:


В любом случае, вы теперь можете писать что-либо в Ворде, а затем получить форматированный результат для помещения в форум.


Как это

Берете статью, использующую RSDN Article.dot. Выполняете команду Make XML. Выполняете преобразование полученного XML с помощью forum.xsl. Для этого, в частности, можно использовать консольную утилиту nxslt:

C:\Util\nxslt.exe MyArticle.xml forum.xsl -o MyArticle.txt

Содержимое полученного текстового файла копируете в окно написания топика.

Да, кстати, данный топик получен именно таким образом (единственное изменение — в последнем пункте заменил тэг code на xsl).


Что еще

Определенно, есть место для развития — это просто первая прикидка, хотя и рабочая. Хотелось бы, чтобы нечто подобное было включено в следующую версию RSDN Authoring Pack.


forum.xsl

<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <xsl:output method="text" encoding="windows-1251" standalone="yes" />
   <xsl:preserve-space elements="PRE CODE COMMENT KEYWORD STRING NUMBER CHARACTER PREPOCESSOR EPIGRAPH" />


<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>

<xsl:template match='text()'><xsl:value-of select='.' /></xsl:template>

<xsl:template match="/">
<xsl:apply-templates select="ARTICLE" />
</xsl:template>

<xsl:template match="HTML"><xsl:copy-of select="./node()"/></xsl:template>


<!-- Заголовки -->

<xsl:template match="ARTICLE">
<xsl:apply-templates select="EPIGRAPH"/>
<xsl:apply-templates select="PART"/>
</xsl:template>

<xsl:template match="PART">
[hr]<xsl:value-of select="HEADER"/>
<xsl:apply-templates/></xsl:template>

<xsl:template match="PART/SECTION">
<xsl:value-of select="HEADER"/>
<xsl:apply-templates/></xsl:template>

<xsl:template match="SUBSECTION"><xsl:value-of select="HEADER"/>
<xsl:apply-templates/></xsl:template>

<xsl:template match="HEADER"></xsl:template>


<!-- Абзацы -->

<xsl:template match="P|p"><xsl:apply-templates/> 
</xsl:template>

<xsl:template match="NOTE|note">[q]<xsl:apply-templates/>[/q]
</xsl:template>

<xsl:template match="WARNING|warning">[q]<xsl:apply-templates/>[/q]
</xsl:template>

<xsl:template match="TIP|tip">[q]<xsl:apply-templates/>[/q]
</xsl:template>


<!-- Списки -->

<xsl:template match="UL|ul">[list]
<xsl:apply-templates/>[/list]
</xsl:template>

<xsl:template match="OL|ol">[list]
<xsl:apply-templates/>[/list]
</xsl:template>

<xsl:template match="LI|li">[*]<xsl:apply-templates/></xsl:template>


<!-- Таблицы -->

<xsl:template match="TH|th"><xsl:apply-templates/> | </xsl:template>
<xsl:template match="TD|td"><xsl:apply-templates/> | </xsl:template>


<!-- Код -->

<xsl:template match="CODE|code">[code]<xsl:apply-templates/>[/code]</xsl:template>


<!-- Прочее -->

<xsl:template match="HR|hr">[hr]</xsl:template>

<xsl:template match="B|b"><xsl:apply-templates select="node()|@*"/></xsl:template>
<xsl:template match="U|u"><xsl:apply-templates select="node()|@*"/></xsl:template>

<xsl:template match="I|i"><xsl:apply-templates select="node()|@*"/></xsl:template>
<xsl:template match="EM|em"><xsl:apply-templates select="node()|@*"/></xsl:template>

<xsl:template match="A">[url=<xsl:value-of select="@href"/>]<xsl:apply-templates/>[/url]</xsl:template>

<xsl:template match="IMG">[img]<xsl:value-of select="@src"/>[/img]
</xsl:template>

<xsl:template match="IMGLINK">[url=<xsl:value-of select="@href"/>][img]<xsl:value-of select="@src"/>[/img][/url]
</xsl:template>


</xsl:stylesheet>
Re: RSDN XML - в формат форума
От: nzeemin Россия http://nzeemin.livejournal.com/
Дата: 18.11.05 10:44
Оценка:
Здравствуйте, nzeemin, Вы писали:

N>forum.xsl

Несмотря на мои старания, XSL был воспроизведён неточно...
На взякий случай выкладываю для скачивания:
http://rsdn.ru/File/10885/forum.xsl
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.