Re[6]: Шаблон для верстки статей RSDN
От: Дьяченко Александр Россия  
Дата: 18.12.06 02:53
Оценка:
Здравствуйте, adontz, Вы писали:

A>>>Карфаген должен быть разрушен?

S>>Ну еще скажи что я неправ. Достаточно прочитать ветку с корня.
A>Ну вот если почитать исправиления Дьяченко Александра, то статнет ясно что скрипт с самого начала был не ахти как корректно написан

Хоть такой есть и то хорошо. Допилим где надо.
... << RSDN@Home 1.2.0 alpha rev. 668>>
Re: Шаблон для верстки статей RSDN
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 01.08.07 05:47
Оценка:
Выпущена версия 1.7 шаблона для верстки статей RSDN
Автор(ы): Брусенцев Виталий, Чистяков Владислав Юрьевич
Дата: 22.06.2011
Статья описывает шаблон для Microsoft Word предназначенный для верстки статей и преобразования их в формат RSDN ML. В статье рассматриваются вопросы использования шаблона.
:

  • Добавлена поддержка MS Office 2007
  • Инсталлятор совместим с Windows Vista
  • Устранено ложное срабатывание некоторых антивирусов
  • Исправлена ошибка при создании Unicode-версии xml
    ... << RSDN@Home 1.2.0 alpha rev. 694>>
  • Re[2]: Authoring tool, generated HTML: file://css
    От: Дм.Григорьев  
    Дата: 01.08.07 07:17
    Оценка: +1
    Здравствуйте, Odi$$ey,

    В Authoring Tool был ещё мелкий глюк: в сгенерированном HTML в ссылке на CSS отсутствует префикс "file://", в итоге под FF не открывалось.
    ... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
    http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
    Re: Шаблон для верстки статей RSDN
    От: Andrew S Россия http://alchemy-lab.com
    Дата: 13.08.07 23:57
    Оценка:

    Название таблицы (подпись) Поддерживается. Для этого сразу после таблицы вставьте абзац со стилем "Name" и текстом названия.
    Таблица 1. Поддержка таблиц в шаблоне RSDN Article


    Собственно, вопрос — а почему после? Общепринято таблицы (как и код) именовывать ДО...
    http://www.rusyaz.ru/pr — стараемся писАть по-русски
    Re: Шаблон для верстки статей RSDN
    От: rea Россия www.viva64.com
    Дата: 03.09.07 10:24
    Оценка:
    У меня есть статья в формате этого шаблона. Она уже публиковалась в RSDN Magazine.
    Так вот если ее пытаться преобразовать в HTML в Word 2007, то происходят ошибки.
    В Word 2003 все работает. Пробовал как версию 1.6, так и 1.7.

    Могу предоставить файл со статьей для повторения ошибки.
    Евгений Рыжков
    ООО "СиПроВер"
    Re: Шаблон для верстки статей RSDN - список с кодом
    От: Andrew S Россия http://alchemy-lab.com
    Дата: 27.09.07 11:08
    Оценка:
    День добрый.
    Такой вопрос — имеется список (OL), хочется в его элементы вставить блоки кода. Как это дело правильно оформляется в документе? При использовании параграфов, естественно, ломается нумерация в результирующем xml.
    Спасибо.
    http://www.rusyaz.ru/pr — стараемся писАть по-русски
    Re[2]: Шаблон для верстки статей RSDN - список с кодом
    От: Odi$$ey Россия http://malgarr.blogspot.com/
    Дата: 18.10.07 03:02
    Оценка:
    Здравствуйте, Andrew S, Вы писали:

    AS>Такой вопрос — имеется список (OL), хочется в его элементы вставить блоки кода. Как это дело правильно оформляется в документе? При использовании параграфов, естественно, ломается нумерация в результирующем xml.


    текущая версия шаблона тут бессильна, надо просто нумеровать вручную, без OL
    ... << RSDN@Home 1.2.0 alpha rev. 774>>
    Автоматическая нумерация заголовоков
    От: rsn81 Россия http://rsn81.wordpress.com
    Дата: 18.10.07 06:53
    Оценка:
    Добрый день.

    Проблема

    Очень неудобно, что в шаблоне нет автоматической нумерации заголовков, то есть абзацев стилей PART, SECTION, SUBSECTION — приходится нумеровать вручную, что при учете постоянных изменений статьи (перекомпоновки) заставляет уделять этому лишнее внимание и время.

    Стандартная нумерация MS Word отражается некорректно в генерируемый XML, а стиль OL для нумерации заголовков не подходит — выше обсуждали про прерывание OL другими стилями. С другой стороны, а зачем нам вообще нумерация заголовков в XML? XML имеет иерархическую структуру, а потому шаблон XSL-преобразования может спокойно вычислить номер любого заголовка проанализировав XML-дерево на этапе построения HTML.

    Решение (то, чем могу помочь я)

    В принципе, автоматическую нумерацию заголовков и проставление номеров в содержании я сделал: изменил в articles.xsl соответствующие шаблоны PART, SECTION, SUBSECTION. Скорее всего сделал не очень красиво, можно было всю логику нумерации вынести всего в один шаблон (собственно — HEADER). Просто лень было сильно заморачиваться, сделал copy-paste-ом. В цитировании выделил внесенные изменения.

    1. Заголовки.

      <xsl:template match="PART">
          <xsl:if test="HEADER">
              <H2>
                  <xsl:value-of select="count(preceding-sibling::PART/HEADER) + 1"/>
                  <xsl:text> </xsl:text>
                  <xsl:value-of select="HEADER"/>
                  <A>
                      <xsl:attribute name="name"><xsl:value-of select="generate-id()"/></xsl:attribute>
                  </A>
              </H2>
          </xsl:if>
          <xsl:apply-templates/>
      </xsl:template>
      
      <xsl:template match="PART/SECTION">
          <xsl:param name="pos"/>
          <H3>
              <xsl:value-of select="count(parent::PART/preceding-sibling::PART/HEADER) + 1"/>
              <xsl:text>.</xsl:text>
              <xsl:value-of select="count(preceding-sibling::SECTION) + 1"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="HEADER"/>
              <A>
                  <xsl:attribute name="name"><xsl:value-of select="generate-id()"/></xsl:attribute>
              </A>
          </H3>
          <xsl:apply-templates/>
      </xsl:template>
      
      <xsl:template match="SUBSECTION">
          <H4>
              <xsl:value-of select="count(ancestor::PART/preceding-sibling::PART/HEADER) + 1"/>
              <xsl:text>.</xsl:text>
              <xsl:value-of select="count(parent::SECTION/preceding-sibling::SECTION) + 1"/>
              <xsl:text>.</xsl:text>
              <xsl:value-of select="count(preceding-sibling::SUBSECTION) + 1"/>
              <xsl:text> </xsl:text>
              <xsl:value-of select="HEADER"/>
          </H4>
          <xsl:apply-templates/>
      </xsl:template>

    2. Содержание.

      <xsl:if test="CONTENTS">
          <xsl:if test="not(COVER)">
              <DIV style="margin-left:2em">
                  <xsl:for-each select="PART">
                      <A>
                          <xsl:attribute name="href">#<xsl:value-of select="generate-id()"/></xsl:attribute>
                          <xsl:if test="HEADER">
                              <B>
                                  <xsl:value-of select="count(preceding-sibling::PART/HEADER) + 1"/>
                                  <xsl:text> </xsl:text>
                                  <xsl:value-of select="./HEADER"/>
                              </B>
                          </xsl:if>
                      </A>
                      <BR/>
                      <DIV style="margin-left:2em">
                          <xsl:for-each select="SECTION">
                              <A>
                                  <xsl:attribute name="href">#<xsl:value-of select="generate-id()"/></xsl:attribute>
                                  <xsl:value-of select="count(parent::PART/preceding-sibling::PART/HEADER) + 1"/>
                                  <xsl:text>.</xsl:text>
                                  <xsl:value-of select="count(preceding-sibling::SECTION) + 1"/>
                                  <xsl:text> </xsl:text>
                                  <xsl:value-of select="./HEADER"/>
                              </A>
                              <BR/>
                          </xsl:for-each>
                      </DIV>
                  </xsl:for-each>
              </DIV>
          </xsl:if>
          <xsl:if test="COVER">
              <TABLE width="98%">
                  <TR>
                      <TD valign="top" class="contents">
                          <xsl:for-each select="PART">
                              <xsl:if test="HEADER">
                                  <A>
                                      <xsl:attribute name="href">#<xsl:value-of select="generate-id()"/></xsl:attribute>
                                      <B>
                                          <xsl:value-of select="count(preceding-sibling::PART/HEADER) + 1"/>
                                          <xsl:text> </xsl:text>
                                          <xsl:value-of select="./HEADER"/>
                                      </B>
                                  </A>
                                  <BR/>
                              </xsl:if>
                              <xsl:if test="SECTION">
                                  <DIV style="margin-left:2em">
                                      <xsl:for-each select="SECTION">
                                          <xsl:if test="HEADER">
                                              <A>
                                                  <xsl:attribute name="href">#<xsl:value-of select="generate-id()"/></xsl:attribute>
                                                  <xsl:value-of select="count(parent::PART/preceding-sibling::PART/HEADER) + 1"/>
                                                  <xsl:text>.</xsl:text>
                                                  <xsl:value-of select="count(preceding-sibling::SECTION) + 1"/>
                                                  <xsl:text> </xsl:text>
                                                  <xsl:value-of select="./HEADER"/>
                                              </A>
                                              <BR/>
                                          </xsl:if>
                                      </xsl:for-each>
                                  </DIV>
                              </xsl:if>
                          </xsl:for-each>
                      </TD>
                      <TD valign="top" align="center" class="contents">
                          <xsl:apply-templates select="COVER"/>
                      </TD>
                  </TR>
              </TABLE>
          </xsl:if>
      </xsl:if>

    Решение (то, что может сделать скорее всего только автор)

    И все бы хорошо, но при внесении описанных выше изменений в шаблон articles.xsl заголовки всех старых статьей, в которых авторы мучались и расставляли нумерацию вручную, будут пронумерованы дважды, то есть увидим автоматический номер и далее текст ручной нумерации. Посему у меня просьба-предложение автору темы:
    1. Сделать настройку в свойствах документа "Автоматически нумеровать заголовки" — кнопка true/false. Она должна быть по умолчанию сброшена, но если выставлена, то в XML-документ должен быть сгенерирован, к примеру, такой элемент ARTICLE/AUTO-NUMBERING-HEADER.
    2. Внести в XSL-преобразование статьи указанные выше мною изменения, обернув их в <xsl:if test="ARTICLE/AUTO-NUMBERING-HEADER">...</xsl:if> — и в RSDN Authoring Pack, и на сайт.
    3. По возможности все же вынести всю логику формирования номера заголовка в шаблон HEADER.
    И вуаля! И волки сыты, и овцы целы: старые статьи, пронумерованные вручную, и новые, пронумерованные автоматически, будут отображаться корректно.

    Изменения по-моему плевые, не должны отнять и часа. Виталий, если у вас есть время, сделайте, пожалуйста, авторам RSDN хорошо!
    Re[3]: Шаблон для верстки статей RSDN - список с кодом
    От: Andrew S Россия http://alchemy-lab.com
    Дата: 18.10.07 08:53
    Оценка:
    AS>>Такой вопрос — имеется список (OL), хочется в его элементы вставить блоки кода. Как это дело правильно оформляется в документе? При использовании параграфов, естественно, ломается нумерация в результирующем xml.

    OE>текущая версия шаблона тут бессильна, надо просто нумеровать вручную, без OL


    К сожалению, это не решит проблемы целиком — форматирование все-равно будет испорчено.
    Сравним.
    Правильный вариант:
    1. text1
      code1
      text1
    2. text2
      code2
      text2

    То, что получается "вручную":

    1. text1
    code1
    text1
    2. text1
    code1
    text1

    Очевидным образом, это совсем не то, что хочется видеть И это при том, что в сообщении нужное форматирование поддерживается без проблем.
    http://www.rusyaz.ru/pr — стараемся писАть по-русски
    Re[4]: Шаблон для верстки статей RSDN - список с кодом
    От: rsn81 Россия http://rsn81.wordpress.com
    Дата: 18.10.07 09:05
    Оценка:
    Здравствуйте, Andrew S, Вы писали:

    Не проще нумерованный список заменить секциями (заголовок H5)? А по поводу того, чтобы они автоматически нумеровались давайте пинать автора (см. Автоматическая нумерация заголовоков
    Автор: rsn81
    Дата: 18.10.07
    ).
    Re[5]: Шаблон для верстки статей RSDN - список с кодом
    От: Andrew S Россия http://alchemy-lab.com
    Дата: 18.10.07 09:26
    Оценка:
    R>Не проще нумерованный список заменить секциями (заголовок H5)? А по поводу того, чтобы они автоматически нумеровались давайте пинать автора (см. Автоматическая нумерация заголовоков
    Автор: rsn81
    Дата: 18.10.07
    ).


    Как его можно заменить секциями? Форматирование (отступы) различается.
    А вот как раз автоматическая нумерация заголовков мне особо не нужна — если посмотреть статьи на рсдн, это редко где используется (если вообще где-то используется), и нужность такой фичи "в целом" мне лично представляется довольно сомнительной. Тем более, что правильная нумерация — многоуровневая, и сделать ее а-ля ворд довольно сложно, и нужно это в основном для сложных и формальных документов, к коим статьи никоим образом не относятся.
    http://www.rusyaz.ru/pr — стараемся писАть по-русски
    Re[6]: Шаблон для верстки статей RSDN - список с кодом
    От: rsn81 Россия http://rsn81.wordpress.com
    Дата: 18.10.07 10:10
    Оценка:
    Здравствуйте, Andrew S, Вы писали:

    AS> Как его можно заменить секциями? Форматирование (отступы) различается.

    И ладно, главное логически показать, что SECTIONs — есть перечисление элементов, которые входят в PART (ну или SUBSECTIONs в SECTION) и нумеруются в порядке следования. Если не рюшечки, а ехать — одно и тоже.

    AS>А вот как раз автоматическая нумерация заголовков мне особо не нужна

    Предложение было сделать в качестве опциональной функциональности, по умолчанию отключенной.

    AS>если посмотреть статьи на рсдн, это редко где используется (если вообще где-то используется)

    Используется, неоднократно. И будет активно использоваться, если процесс автоматизировать: как сейчас — неудобно, потому и не пользуются.

    AS>и нужность такой фичи "в целом" мне лично представляется довольно сомнительной.

    Посмотрите любую серьезную книгу.
    Как минимум, как ссылаться из одной главы на другую: "информацию см. в главе "Вот такое вот название главы" или как стандарт ссылок (изображения, таблицы и т.п.) "см. главу 2.1"?

    AS>Тем более, что правильная нумерация — многоуровневая, и сделать ее а-ля ворд довольно сложно

    Гм... почему сложно-то? Я уже сделал, см. изменения сделанные мною в вашем XSL-преобразовании по той же ссылке: сделал так, чтобы все работало при условии "ничего не ломая". А многоуровневость действительно не нужна, для этого вам придется переделать всю структуру вашего XML-формата. Что при этом делать со старыми статьями, а?

    AS>и нужно это в основном для сложных и формальных документов, к коим статьи никоим образом не относятся.

    Не согласен. Статьи на этом ресурсе достаточно сложные и формальные документы.

    PS Сделайте, плиз, там же работы совсем ничего...
    Re[7]: Шаблон для верстки статей RSDN - список с кодом
    От: Andrew S Россия http://alchemy-lab.com
    Дата: 18.10.07 10:25
    Оценка:
    AS>> Как его можно заменить секциями? Форматирование (отступы) различается.
    R>И ладно, главное логически показать, что SECTIONs — есть перечисление элементов, которые входят в PART (ну или SUBSECTIONs в SECTION) и нумеруются в порядке следования. Если не рюшечки, а ехать — одно и тоже.

    Заголовок и перечисление — _логически_ разные элементы. Период. По остальному — я свое мнение уже изложил, второй раз писАть то же самое смысла не вижу — все-равно решать команде RSDN, нужно им это или нет.
    http://www.rusyaz.ru/pr — стараемся писАть по-русски
    Re[7]: Шаблон для верстки статей RSDN - список с кодом
    От: rsn81 Россия http://rsn81.wordpress.com
    Дата: 18.10.07 11:29
    Оценка:
    Здравствуйте, rsn81, Вы писали:

    R>PS Сделайте, плиз, там же работы совсем ничего...

    Блин, принял вас за автора темы.
    Как всегда понимаю все по-своему, надо спать больше 4 часов в день, пожалуй.
    Re: Шаблон для верстки статей RSDN
    От: rsn81 Россия http://rsn81.wordpress.com
    Дата: 22.02.08 06:36
    Оценка: 1 (1)
    Здравствуйте, Виталий Брусенцев, Вы писали:

    В MS Office 2007 построение XML валится на этом: Error message when you run a macro that uses the custom dictionary name as the index in the "CustomDictionaries" method in Word 2007: "Run-time error 5941: The requested member of the collection does not exist" — бага поставлена в очередь исправлений Word 2007, так что пока RSDN Authoring Pack лучше не использовать на нем.
    Re[2]: Шаблон для верстки статей RSDN
    От: Дьяченко Александр Россия  
    Дата: 22.02.08 13:06
    Оценка:
    Здравствуйте, rsn81, Вы писали:

    R>В MS Office 2007 построение XML валится на этом: Error message when you run a macro that uses the custom dictionary name as the index in the "CustomDictionaries" method in Word 2007: "Run-time error 5941: The requested member of the collection does not exist" — бага поставлена в очередь исправлений Word 2007, так что пока RSDN Authoring Pack лучше не использовать на нем.


    Странно у меня работало в принципе после небольшого допиливания (правда на версии 1.6) см. ветку Re: Шаблон для верстки статей RSDN
    Автор: Дьяченко Александр
    Дата: 17.12.06
    .
    ... << RSDN@Home 1.2.0 alpha rev. 799>>
    Re: Шаблон для верстки статей RSDN
    От: adontz Грузия http://adontz.wordpress.com/
    Дата: 11.04.09 06:39
    Оценка:
    Здравствуйте, Виталий Брусенцев, Вы писали:

    Если
    "href=""" & XSLPath & "css/article.css"">" & vbCrLf & _
    заменить на
    "href=""file://" & XSLPath & "css/article.css"">" & vbCrLf & _
    firefox будет щаслиф
    A journey of a thousand miles must begin with a single step © Lau Tsu
    Re: Не работает в MS Word 2010
    От: FDSC Россия consp11.github.io блог
    Дата: 06.08.11 14:07
    Оценка:
    При включении шаблона падает на


    Function InitRsdnMlAutomation() As Boolean
      If rsdnML Is Nothing Then Set rsdnML = CreateObject("RsdnMlAutomation")
      If rsdnML Is Nothing Then
        MsgBox "Не удается создать объекта RsdnMlAutomation. Переустановите 'RSDN Authoring Pack'"
        InitRsdnMlAutomation = False
      Else
        InitRsdnMlAutomation = True
      End If
    End Function
    Re[2]: Не работает в MS Word 2010
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 07.08.11 20:00
    Оценка:
    Здравствуйте, FDSC, Вы писали:

    FDS>
    FDS>Function InitRsdnMlAutomation() As Boolean
    FDS>  If rsdnML Is Nothing Then Set rsdnML = CreateObject("RsdnMlAutomation")
    FDS>  If rsdnML Is Nothing Then
    FDS>    MsgBox "Не удается создать объекта RsdnMlAutomation. Переустановите 'RSDN Authoring Pack'"
    FDS>    InitRsdnMlAutomation = False
    FDS>  Else
    FDS>    InitRsdnMlAutomation = True
    FDS>  End If
    FDS>End Function
    FDS>


    Скорее всего одно из следующих:
    1. Слишком высокий уровень защиты не дающий создать ком-объект. Нужно в настройках понизить уровень безопасности до среднего. Тогда будет даваться предупреждение, но объекты загрузить будет можно. На вопрос нужно ответить положительно.

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

    3. На машине не стоит .Net Framework 3.5.

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

    4. Word 64-битный. Тут только установка 32-битного ворда поможет.

    Если ни один варианта не поможет, будем думать дальше.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[3]: --
    От: FDSC Россия consp11.github.io блог
    Дата: 07.08.11 20:40
    Оценка:
    Здравствуйте, VladD2, Вы писали:


    VD>4. Word 64-битный. Тут только установка 32-битного ворда поможет.


    Понятно. Тогда я лучше воспользуюсь rsdn-овской wiki (а куда там именно писать?)
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.