Шаблон для верстки статей RSDN
От: Виталий Брусенцев www.airbandits.com/
Дата: 30.07.03 04:21
Оценка: 1410 (16) +1
Статья:
Шаблон для верстки статей RSDN
Автор(ы): Брусенцев Виталий, Чистяков Владислав Юрьевич
Дата: 22.06.2011
Статья описывает шаблон для Microsoft Word предназначенный для верстки статей и преобразования их в формат RSDN ML. В статье рассматриваются вопросы использования шаблона.


Авторы:
Виталий Брусенцев

Аннотация:
Описание шаблона для верстки статей RsdnML в MS Word
Успехов,
Виталий.
Re: Обнаружен глюк
От: Constructor  
Дата: 30.09.03 06:54
Оценка:
Здравствуйте, Виталий Брусенцев!
Я обнаружил глюк. Если в тексте статьи последний текст имеет стиль Code (например, С++), то процедура создания XML зависает.
Скачал дистрибутив месяца полтора назад.
Re[2]: Обнаружен глюк
От: retalik www.airbandits.com/
Дата: 30.09.03 07:55
Оценка:
Здравствуйте, Constructor, Вы писали:

C>Я обнаружил глюк. Если в тексте статьи последний текст имеет стиль Code (например, С++), то процедура создания XML зависает.

C>Скачал дистрибутив месяца полтора назад.
Да, этот глюк известен. Сейчас готовлю новую версию шаблона, в ней он устранен.
Успехов,
Виталий.
Re: Шаблон для верстки статей RSDN
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 26.03.04 05:28
Оценка:
Здравствуйте, Виталий Брусенцев!

При попытке воспользоваться сабжем на WinXP SP1 Eng + Office 2000 SP3 Eng Ворд стабильно рушится, если попытаться пометить текст как "Code -> C++". Остальные стили применяются к тексту абсолютно нормально. Настройки Ворда практически не отличаются от тех, что создаются при установке — только отключена проверка грмматики "на лету" (орфорграфия проверяется, установлено ORFO 2000). На Win2000 SP4 Eng + Office 97 SP2 Eng все в порядке (правда, ORFO 5.0).
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Дополнение
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 27.03.04 09:55
Оценка:
WinXP SP1 Eng + Office 97 SP Eng — то же самое (Ворд рушится при попытке пометить текст как код на любом из предлашаемых языков). Снос ORFO и отключение проверки орфографии/грамматики не помогает. Запуск Ворда в режиме совместимости с W2K также не дает положительного результата.
<< RSDN@Home 1.1.2 stable >>
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re: Дополнение
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 28.03.04 13:17
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>WinXP SP1 Eng + Office 97 SP Eng — то же самое (Ворд рушится при попытке пометить текст как код на любом из предлашаемых языков). Снос ORFO и отключение проверки орфографии/грамматики не помогает. Запуск Ворда в режиме совместимости с W2K также не дает положительного результата.


WinXP SP1 Eng + Office XP Pro Eng — ситуация аналогичная.

Если кому-то удавалось воспользоваться "Шаблоном для верстки..." под ХРюшей — буду очень признатен за деление опытом.
<< RSDN@Home 1.1.2 stable >>
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re: Дополнение
От: retalik www.airbandits.com/
Дата: 28.03.04 14:50
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>WinXP SP1 Eng + Office 97 SP Eng — то же самое (Ворд рушится при попытке пометить текст как код на любом из предлашаемых языков). Снос ORFO и отключение проверки орфографии/грамматики не помогает. Запуск Ворда в режиме совместимости с W2K также не дает положительного результата.


Все чудесатее и чудесатее...

Как именно рушится Ворд — выдает какое-либо сообщение об ошибке или с AV?
Попробуй запустить вот такой файлик test.js (просто дабл-кликом в Explorer):
WScript.Echo("Version: "+
  ScriptEngineMajorVersion()+"."+ScriptEngineMinorVersion());
var text = "int main(){ return 0; }";
var colorer = new ActiveXObject("RSDN.CodeColorer");
WScript.Echo(colorer.TranslateCode(text, "C/C++"));

и сообщи о результатах, плиз.
... Live as if you were to die tomorrow. Learn as if you were to live forever. -- M.K. Gandhi
Успехов,
Виталий.
Re[2]: Дополнение
От: HeaveN Россия  
Дата: 28.03.04 15:28
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>WinXP SP1 Eng + Office XP Pro Eng — ситуация аналогичная.


У меня работает без вопросов. Инсталлировал и все. Правда офис русский.
... << RSDN@Home 1.1.4 beta 1 >>
Нет такого закона, что человеку летать нельзя...
Re[2]: Дополнение
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 28.03.04 16:25
Оценка:
Здравствуйте, retalik, Вы писали:

R>Все чудесатее и чудесатее...


В жизни всегда есть место празднику...

R>Как именно рушится Ворд — выдает какое-либо сообщение об ошибке или с AV?


AV и предложение послать report в Редмонд. Одним из первых имен в логе, который предлагается отослать, является ole32.dll.

R>Попробуй запустить вот такой файлик test.js (просто дабл-кликом в Explorer):


А из FARа можно?

Вот результат:

1-й message box:

---------------------------
Windows Script Host
---------------------------
Version: 5.6
---------------------------
OK
---------------------------

2-й message box:

---------------------------
Windows Script Host
---------------------------
<kw>int</kw> main(){ <kw>return</kw> 0; }
---------------------------
OK
---------------------------

Это был страшный вирус, да?
<< RSDN@Home 1.1.2 stable >>
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[3]: Дополнение
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 28.03.04 16:29
Оценка:
Здравствуйте, HeaveN, Вы писали:

HN>Здравствуйте, SchweinDeBurg, Вы писали:


SDB>>WinXP SP1 Eng + Office XP Pro Eng — ситуация аналогичная.


HN>У меня работает без вопросов. Инсталлировал и все. Правда офис русский.


Что забавно: даже под Win98 SE Eng + Office 97 SP2 Eng — и то работает! А под ХРюшей не хочет. Кстати, тот MSXML, который живет под W2K, маркирован как 3.0 SP3 (file version 8.30.9926.0), а тот, что под ХРюшей — как 3.0 SP4 (file version 8.40.9419.0).
<< RSDN@Home 1.1.2 stable >>
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re: Шаблон для верстки статей RSDN
От: Yachtsman Россия  
Дата: 04.06.04 07:51
Оценка:
Здравствуйте, Виталий Брусенцев, Вы писали:

ВБ>Аннотация:

ВБ>Описание шаблона для верстки статей RsdnML в MS Word

А существует ли в природе XML схема статьи? Больно не хочется ее самому описывать...
Все, что ни делается — делается к лучшему!
Re[2]: Шаблон для верстки статей RSDN
От: retalik www.airbandits.com/
Дата: 04.06.04 08:39
Оценка:
Здравствуйте, Yachtsman, Вы писали:

Y>А существует ли в природе XML схема статьи? Больно не хочется ее самому описывать...

Насколько я знаю, нет. А для чего ее понадобилось описывать? Может, эта схема и нам пригодится?
Успехов,
Виталий.
Re[3]: Шаблон для верстки статей RSDN
От: Yachtsman Россия  
Дата: 04.06.04 09:09
Оценка:
Здравствуйте, retalik, Вы писали:
R>Насколько я знаю, нет. А для чего ее понадобилось описывать? Может, эта схема и нам пригодится?

Вообще, для валидации статей... Хочу попробовать написать клиента для их написания... Для общего, т.с. развития...
... << Rsdn@Home 1.1.4 beta 1 >>
Все, что ни делается — делается к лучшему!
Re[4]: Шаблон для верстки статей RSDN
От: orangy Россия
Дата: 04.06.04 11:00
Оценка: :))) :))) :)
Здравствуйте, Yachtsman, Вы писали:

R>>Насколько я знаю, нет. А для чего ее понадобилось описывать? Может, эта схема и нам пригодится?

Y>Вообще, для валидации статей... Хочу попробовать написать клиента для их написания... Для общего, т.с. развития...
Искусственный интеллект на RSDN! Вы задаете тему статьи, а клиент RSDN@Article пишет статью заданного объёма для вас! Нет больше проблем с материалом в журнал!

... << RSDN@Home 1.1.4 beta 1 >>
"Develop with pleasure!"
Re[5]: Шаблон для верстки статей RSDN
От: adontz Грузия http://adontz.wordpress.com/
Дата: 04.06.04 19:23
Оценка: :)
Здравствуйте, orangy, Вы писали:

O>Искусственный интеллект на RSDN! Вы задаете тему статьи, а клиент RSDN@Article пишет статью заданного объёма для вас!


Как показало исследование, искуственный интеллект RSDN@Article постоянно пытается установить соединение по следующим URL
http://www.google.com/search?hl=ru&amp;ie=UTF-8&amp;q=%D1%87%D1%91+%D0%B7%D0%B0+%D0%B1%D0%BE%D1%82%D0%B2%D0%B0%3F&amp;lr= 2 3
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Ошибка при генерации XML / HTML версий статьи
От: yury.fedorov Италия http://esistema.it/
Дата: 16.07.04 10:43
Оценка:
При попытке генерации XML / HTML версий статьи появляется диалоговое окно с индикатором прогресса, но по окончанию работы ни XML, ни HTML версии статьи в папке не появляется. Причем для другой статьи эти файлы генеряться без проблем.
Re[2]: Ошибка при генерации XML / HTML версий статьи
От: retalik www.airbandits.com/
Дата: 16.07.04 11:04
Оценка:
Здравствуйте, yury.fedorov, Вы писали:

YF>При попытке генерации XML / HTML версий статьи появляется диалоговое окно с индикатором прогресса, но по окончанию работы ни XML, ни HTML версии статьи в папке не появляется. Причем для другой статьи эти файлы генеряться без проблем.


Пришлите мне архив с .doc-файлом — попробую разобраться.
Успехов,
Виталий.
Re: Зависание при форматировании текста
От: nzeemin Россия http://nzeemin.livejournal.com/
Дата: 02.05.05 18:51
Оценка:
Здравствуйте, Виталий Брусенцев.

На работе — Win XP SP1 + Office 2003 + RSDN Author Pack 1.6, дома — такая же конфигурация.
На работе все работает, дома — зависает при попытке отформатировать текст. Причем в любой формат кроме Manual. Кроме того, зависает при выборе пункта Language from list. Ваш тест — test.js — выдал первый диалог "Version: 5.6", а второй "<kw>int</kw> main(){ <kw>return</kw> 0; }" только через минуту или две. Что делать, кто виноват?..
Re[2]: Зависание при форматировании текста
От: retalik www.airbandits.com/
Дата: 02.05.05 19:11
Оценка:
Здравствуйте, nzeemin, Вы писали:

N>На работе — Win XP SP1 + Office 2003 + RSDN Author Pack 1.6, дома — такая же конфигурация.

N>На работе все работает, дома — зависает при попытке отформатировать текст. Причем в любой формат кроме Manual. Кроме того, зависает при выборе пункта Language from list. Ваш тест — test.js — выдал первый диалог "Version: 5.6", а второй "<kw>int</kw> main(){ <kw>return</kw> 0; }" только через минуту или две. Что делать, кто виноват?..

Проблема с Windows Scripting Host, похоже.
Никакой анти-спайвары не установлено? Я установил MS AntiSpyware, так столкнулся с тем, что выполнение скриптов блокируется.
Успехов,
Виталий.
Re[3]: Зависание при форматировании текста
От: Блудов Павел Россия  
Дата: 03.05.05 01:32
Оценка:
Здравствуйте, retalik, Вы писали:

R>Проблема с Windows Scripting Host, похоже.

R>Никакой анти-спайвары не установлено? Я установил MS AntiSpyware, так столкнулся с тем, что выполнение скриптов блокируется.

Похоже на последствия установленного, а потом снесённого AVP.
Лечится

regsvr32 jscript.dll
regsvr32 vbscript.dll
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Re: Шаблон для верстки статей RSDN
От: __WaterFall__ Беларусь vladimir.boltuts@gmail.com
Дата: 28.06.05 12:51
Оценка:
неточность ?

>> Пример: C:\My Articles\RSDN\new.doc будет конвертирован в C:\My Articles\RSDN\new.doc.xml


у меня сохраняет в "new.xml"
from __python__ import paradigma
from __future__ import generators
from __waterfall__ import power
Re[2]: Шаблон для верстки статей RSDN
От: __WaterFall__ Беларусь vladimir.boltuts@gmail.com
Дата: 28.06.05 12:55
Оценка:
>> у меня сохраняет в "new.xml"

сорри, не заметил примечание
from __python__ import paradigma
from __future__ import generators
from __waterfall__ import power
Re: Шаблон для верстки статей RSDN
От: __WaterFall__ Беларусь vladimir.boltuts@gmail.com
Дата: 06.07.05 19:36
Оценка:
1. Не могу найти каким образом вставлять исходный код в статью, чтобы он разворачивался
и сворачивался плюсиком, как показано в примере данной статьи для IDL.
При изучении HTML кода видно, что задействована функция "JavaScript" — ToggleCode().
Что надо указать в Word документе, чтобы ее заюзать?

2. При вставке гиперссылок хотелось бы использовать такие рисуночки, как <IMG src="/images/extA.gif" ...
Что надо сделать в Word, чтобы их подключить?
Где посмотреть весь спектр смайликов, имеющихся на сайте?
from __python__ import paradigma
from __future__ import generators
from __waterfall__ import power
Re[2]: Шаблон для верстки статей RSDN
От: retalik www.airbandits.com/
Дата: 06.07.05 20:25
Оценка:
Здравствуйте, __WaterFall__, Вы писали:

__W>1. Не могу найти каким образом вставлять исходный код в статью, чтобы он разворачивался

__W> и сворачивался плюсиком, как показано в примере данной статьи для IDL.

Надо перед исходником поместить заголовок со стилем Name и начать его с "+" или "-".

__W>2. При вставке гиперссылок хотелось бы использовать такие рисуночки, как <IMG src="/images/extA.gif" ...

__W> Что надо сделать в Word, чтобы их подключить?

Надо в свойствах гиперссылки, в поле "примечание", поместить текст "ext" или "file". См. документацию.

__W> Где посмотреть весь спектр смайликов, имеющихся на сайте?

Статьи тут не при чем, смайлики только на форуме (практически все есть в форме ввода сообщения).

А какую статью Вы пишете?
Успехов,
Виталий.
Re[3]: Шаблон для верстки статей RSDN
От: __WaterFall__ Беларусь vladimir.boltuts@gmail.com
Дата: 07.07.05 19:14
Оценка:
Спасибо за советы Витилий,

R>Надо перед исходником поместить заголовок со стилем Name и начать его с "+" или "-".

стиль Name я вчера пробовал, но был вечер, видно я доку читал очень быстро, вот "+" и "-" поставить не догадался, как-то пропустил. Сегодня в доке явно вижу, как ясно и понятно написано, вчера (пивом клянусь) этого не было

R>Надо в свойствах гиперссылки, в поле "примечание", поместить текст "ext" или "file". См. документацию.

всё-равно не понял как писать это "примечание", даже после прочтения доки, например я хочу на какое-нибудь слово сделать абсолютныю ссылку + повесить картинку т.е. например <A href="http://www.my-site.com"><IMG src="http://www.rsdn.ru/images/fileA.gif" border="0" width="28" height="11" align="absmiddle">нажмите сюда пожалуйста</A>. Как это объянить word-у? ну написал я "ext" в поле "примечание", а как к ней приклеить fileA.gif?

R>Статьи тут не при чем, смайлики только на форуме (практически все есть в форме ввода сообщения).

Я не правильно выразился, я имел ввиду не смайлики, а маленькие рисуночки — атрибуты для ссылок <A href= ...
как например <IMG src="/images/extA.gif" ... <IMG src="/images/fileA.gif" ...
Я их наблюдаю в других статьях, стильно. (т.е. список картинок из папки 'images' меня и интересует).
Я так понимаю, что где-то в word-е в атрибутах ссылки надо ставить абсолютные ссылки-атрибуты,
<IMG src="http://www.rsdn.ru/images/fileA.gif" , иначе при открытии локально сгенерированного htm картинки не будут найдены? Или скачать к себе в папку нужные gif?

R>А какую статью Вы пишете?

Я пока не хотел бы называть тему публично, вероятно из-за суеверности, чтобы не сорваться на более насущные дела по дому. Это всё-таки будет моя первая статья для RSDN. Занимает много времени, уже неделю пишу по-вечерам. Дальше должно быть легче. Если закончу, то вы об этом очень скоро узнаете (я её собираюсь выслать на рецензирование).
Скорее всего это будет жанр алгоритмы/математика, хотя там есть небольшой уклон в сторону hardware. Сейчас пишу soft для статьи.

У меня ещё есть 1 вопрос, если я в статью хочу вставить небольшой графический пример, показывающий работу описываемых алгоритмов, могу ли я написать процедурку (например на "JavaScript") и вставить прямо в середину статьи?
или может оформить как отдельный файл htm и сделать ссылку? Как это правильно делается?
from __python__ import paradigma
from __future__ import generators
from __waterfall__ import power
Re[4]: Шаблон для верстки статей RSDN
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 08.07.05 01:46
Оценка:
Здравствуйте, __WaterFall__, Вы писали:

__W>Как это объянить word-у? ну написал я "ext" в поле "примечание", а как к ней приклеить fileA.gif?


в ворде ты рисунок не увимдишь, его "приклеит" конвертор в xml

__W>Я так понимаю, что где-то в word-е в атрибутах ссылки надо ставить абсолютные ссылки-атрибуты,


нет

__W>иначе при открытии локально сгенерированного htm картинки не будут найдены? Или скачать к себе в папку нужные gif?


да, заведи в корне диска каталог images с нужными рисунками, тогда увидишь и локально
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[5]: Шаблон для верстки статей RSDN
От: retalik www.airbandits.com/
Дата: 08.07.05 05:04
Оценка: +1
Здравствуйте, Odi$$ey, Вы писали:

OE>в ворде ты рисунок не увимдишь, его "приклеит" конвертор в xml

Поправочка: в xml его тоже не будет, его сгенерирует XSLT в финальном HTML.

__W>>иначе при открытии локально сгенерированного htm картинки не будут найдены? Или скачать к себе в папку нужные gif?


При генерации локального HTML вообще ставятся абсолютные пути к рисункам (определяется по каталогу установки шаблона). Они верны только для этого компьютера. Но локальный HTML нужен только для просмотра сгенерированной статьи. На сайте будут другие пути.
Успехов,
Виталий.
Re[6]: Шаблон для верстки статей RSDN
От: __WaterFall__ Беларусь vladimir.boltuts@gmail.com
Дата: 08.07.05 12:03
Оценка:
со списком рисуночков понятно (chmA.gif extA.gif fileA.gif ls.gif ls1.gif ls2.gif)

OE>>в ворде ты рисунок не увимдишь, его "приклеит" конвертор в xml

R>Поправочка: в xml его тоже не будет, его сгенерирует XSLT в финальном HTML.
спасибо, как я понял механизм такой
— в xml попадает type="ext"
— в html попадает абсолютный путь <IMG src="C:/Program Files/RSDN/Authoring Pack/Authoring/images/extA.gif"
— при выкладывании на RSDN абсолютный путь киляется

R>При генерации локального HTML вообще ставятся абсолютные пути к рисункам (определяется по каталогу установки шаблона). Они верны только для этого компьютера. Но локальный HTML нужен только для просмотра сгенерированной статьи. На сайте будут другие пути.


+ вопрос:
если я также захочу выложить html, например на свой сайт, мне надо пропатчить html, т.е. поубирать абсолютные пути?
может есть такая опция при генерации? (или скопировать в папку к статье всю папку Authoring и поставить в
свойствах путь к XSL = .\ (я попробовал — получим почти как на сайте <IMG src="./images/extA.gif")?
или все-таки самому писать конвертор?...)
есть второй способ скачать html статью с RSDN, (при условии, если ее опубликуют

мне так никто и не ответил на вопрос, можно ли в word документ вставлять сырой html код, например на "JavaScript"?
from __python__ import paradigma
from __future__ import generators
from __waterfall__ import power
Re: Шаблон для верстки статей RSDN
От: Дьяченко Александр Россия  
Дата: 16.12.06 22:57
Оценка:
В Висте не ставится падает где-то ближе к концу. В офисе 2007 как-то странно работает панелька
Re[2]: Шаблон для верстки статей RSDN
От: Sheridan Россия  
Дата: 16.12.06 23:52
Оценка: +1 :))
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>В Висте не ставится падает где-то ближе к концу. В офисе 2007 как-то странно работает панелька

А я и не удивлен. Новые версии софта МС всегда требуют переделки более-менее серьезных вещей, связанных с этим софтом...
Matrix has you...
Re[3]: Шаблон для верстки статей RSDN
От: adontz Грузия http://adontz.wordpress.com/
Дата: 17.12.06 07:51
Оценка: +1 :))
Здравствуйте, Sheridan, Вы писали:

S>А я и не удивлен. Новые версии софта МС всегда требуют переделки более-менее серьезных вещей, связанных с этим софтом...


Карфаген должен быть разрушен?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Шаблон для верстки статей RSDN
От: Дьяченко Александр Россия  
Дата: 17.12.06 09:46
Оценка:
Здравствуйте, adontz, Вы писали:

S>>А я и не удивлен. Новые версии софта МС всегда требуют переделки более-менее серьезных вещей, связанных с этим софтом...

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

Уже почти собрал обратно

Function FormatRange(content As Range, Format As Boolean, Optional code As Boolean) As String
    Dim h As Hyperlink, s As String, Text As String
    Dim r As Range, shape As InlineShape, iCode As Integer
    Set r = CopyRange(content)
    ReplaceText r, "&", "&amp;"
    ReplaceText r, "<", "&lt;"
    ReplaceText r, ">", "&gt;"
    ReplaceText r, "^l", "<BR/>"
    If Format Then
        If Not code Then
            Dim temp As Range
            Do While r.Hyperlinks.Count > 0
                Set h = r.Hyperlinks(1)
                Text = h.Range.Text
                s = "<A href=""" & Escape(h.address) & """"
                If h.ScreenTip <> "" Then s = s & " type=""" & h.ScreenTip & """"
                s = s & ">" & Text & "</A>"
                Set temp = h.Range.Duplicate
                h.Delete
                temp.Text = s
            Loop
            Do While r.InlineShapes.Count > 0
                Set shape = r.InlineShapes(0)
                Text = ProcessInlineShape(shape)
                Set temp = shape.Range.Duplicate
                shape.Delete
                temp.Text = Text
            Loop
        End If
        ReplaceFormat 
        If code Then ReplaceCode content
    End If
    Set r = CopyRange(content)
    FormatRange = Replace(r.Text, vbCr, IIf(code, vbCrLf, ""))
End Function

Падает в выделенном месте 0 элемента нет. Есть 1. Надо или 0 поменять на 1 или заменить do while на for each (покрайней мере у меня прокатило).
... << RSDN@Home 1.2.0 alpha rev. 669>>
Re[5]: Шаблон для верстки статей RSDN
От: Дьяченко Александр Россия  
Дата: 17.12.06 10:36
Оценка:
А так же

Sub StartConversion()
    
    ...
    
    XMLName = ThisDoc.FullName
    If bShortExt Then XMLName = Left(XMLName, Len(XMLName) - 4)
    XMLName = XMLName & ".xml"
    
    ...
    
End Sub

Предлагаю выделенное заменить на:
XMLName = Left(XMLName, InStrRev(XMLName, ".") - 1)

А то если готовишь текст в docx формате расширение неправильное делает.
... << RSDN@Home 1.2.0 alpha rev. 669>>
Re[6]: Шаблон для верстки статей RSDN
От: Дьяченко Александр Россия  
Дата: 17.12.06 12:05
Оценка:
И еще одно для C# не подсвечиваются get/set/value
... << RSDN@Home 1.2.0 alpha rev. 669>>
Re[7]: Шаблон для верстки статей RSDN
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.12.06 12:29
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>И еще одно для C# не подсвечиваются get/set/value


Для их подсветки нужен парсер.
... << RSDN@Home 1.2.0 alpha rev. 669 on Windows XP 5.1.2600.131072>>
AVK Blog
Re[8]: Шаблон для верстки статей RSDN
От: Дьяченко Александр Россия  
Дата: 17.12.06 14:09
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

ДА>>И еще одно для C# не подсвечиваются get/set/value

AVK>Для их подсветки нужен парсер.

их можно и всегда подсвечивать не так их и много не в свойствах
... << RSDN@Home 1.2.0 alpha rev. 669>>
Re[9]: Шаблон для верстки статей RSDN
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.12.06 15:45
Оценка:
Здравствуйте, Дьяченко Александр, Вы писали:

ДА>их можно и всегда подсвечивать


А можно и никогда не подсвечивать, что будет не хуже.
... << RSDN@Home 1.2.0 alpha rev. 669 on Windows XP 5.1.2600.131072>>
AVK Blog
Re[4]: Шаблон для верстки статей RSDN
От: Sheridan Россия  
Дата: 17.12.06 17:20
Оценка:
Здравствуйте, adontz, Вы писали:

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

Ну еще скажи что я неправ. Достаточно прочитать ветку с корня.
Matrix has you...
Re[10]: Шаблон для верстки статей RSDN
От: Дьяченко Александр Россия  
Дата: 17.12.06 18:11
Оценка:
Здравствуйте, AndrewVK, Вы писали:

ДА>>их можно и всегда подсвечивать

AVK>А можно и никогда не подсвечивать, что будет не хуже.
А бог с ним , но себе я переделал
... << RSDN@Home 1.2.0 alpha rev. 669>>
Re[5]: Шаблон для верстки статей RSDN
От: adontz Грузия http://adontz.wordpress.com/
Дата: 17.12.06 18:44
Оценка:
Здравствуйте, Sheridan, Вы писали:

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

S>Ну еще скажи что я неправ. Достаточно прочитать ветку с корня.

Ну вот если почитать исправиления Дьяченко Александра, то статнет ясно что скрипт с самого начала был не ахти как корректно написан
А вообще твоё утверждение не вполне верно потому что
  • Там где обратную совместимость общают, она есть. Программы написанные для Windows 2000, запускаются и на ХР и на 2003
  • Там где её не обещают, её искать не надо. Программы для .Net Frameword 1.1 зачастую не корректно работают на .Net Framework 2.0
  • A journey of a thousand miles must begin with a single step © Lau Tsu
    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 (а куда там именно писать?)
    Re[3]: Не работает в MS Word 2010
    От: SGHouse Россия armag.newmail.ru
    Дата: 17.10.11 09:14
    Оценка:
    Здравствуйте, VladD2, Вы писали:

    VD>Здравствуйте, FDSC, Вы писали:


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


    VD>Если ни один варианта не поможет, будем думать дальше.


    Прошу прощения, а можно доработать authority pack для поддержки 64-битной OS и офиса? Как-то это перебор, ставить параллельно с 64-битным ещё и 32-битный офис только лишь для написания статьи на rsdn. Или поднимать виртуалку с 32-битной системой...
    Re[4]: Не работает в MS Word 2010
    От: SGHouse Россия armag.newmail.ru
    Дата: 17.10.11 09:16
    Оценка:
    Здравствуйте, SGHouse, Вы писали:

    SGH>Здравствуйте, VladD2, Вы писали:


    VD>>Здравствуйте, FDSC, Вы писали:


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


    VD>>Если ни один варианта не поможет, будем думать дальше.


    SGH>Прошу прощения, а можно доработать authority pack для поддержки 64-битной OS и офиса? Как-то это перебор, ставить параллельно с 64-битным ещё и 32-битный офис только лишь для написания статьи на rsdn. Или поднимать виртуалку с 32-битной системой...


    Сорри, ошибся в названии — authority pack -> Authoring Pack.
    Re[4]: Не работает в MS Word 2010
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 17.10.11 11:00
    Оценка:
    Здравствуйте, SGHouse, Вы писали:

    SGH>Прошу прощения, а можно доработать authority pack для поддержки 64-битной OS и офиса? Как-то это перебор, ставить параллельно с 64-битным ещё и 32-битный офис только лишь для написания статьи на rsdn. Или поднимать виртуалку с 32-битной системой...


    Офторп: Вообще-то МС сам не рекомендует ставить 64-ый офис (прямо в инсталляторе).

    Проблема в том, что наше расширение, по идее, не должно зависеть от битности офиса. Оно написано на дотнете и ВБА. Но, почему-то, я уже слышу третий отклик о том, что оно не работает под 64-битным офисом. Причем у меня нет идей как понять, что не так. Там COM. А он не прозрачен до чертиков.

    Попытаюсь поставить себе (еще раз) 64-битный офис и пошаманить. Но обещать ничего не могу.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[5]: Не работает в MS Word 2010
    От: SGHouse Россия armag.newmail.ru
    Дата: 17.10.11 17:38
    Оценка: +1
    Здравствуйте, VladD2, Вы писали:

    VD>Здравствуйте, SGHouse, Вы писали:


    SGH>>Прошу прощения, а можно доработать authority pack для поддержки 64-битной OS и офиса? Как-то это перебор, ставить параллельно с 64-битным ещё и 32-битный офис только лишь для написания статьи на rsdn. Или поднимать виртуалку с 32-битной системой...


    VD>Офторп: Вообще-то МС сам не рекомендует ставить 64-ый офис (прямо в инсталляторе).


    VD>Проблема в том, что наше расширение, по идее, не должно зависеть от битности офиса. Оно написано на дотнете и ВБА. Но, почему-то, я уже слышу третий отклик о том, что оно не работает под 64-битным офисом. Причем у меня нет идей как понять, что не так. Там COM. А он не прозрачен до чертиков.


    VD>Попытаюсь поставить себе (еще раз) 64-битный офис и пошаманить. Но обещать ничего не могу.


    Я, конечно, в дотнете не силён, но попробую помочь предположениями.

    Хотя дотнет проекты по натуре кросс-платформенны, но почему-то у меня в Visual Studio 2008 в настройках C#-проекта в разделе "построение" есть такая интересная опция "конечная платформа"... И там можно выбрать "Any CPU", "x32", "x64". Собственно, первый вопросец: у Вас проект собирается под Any CPU?

    Есть несколько типов COM-объектов, один из них — это inproc. По сути это обыкновенная dll'ка. 32-разрядную dll-ку можно подгрузить только 32-разрядный процесс, а 64-разрядную — в, соответственно, 64-разрядный. А потому в 64-разрядной OS в том, что относится к регистрации COM-компонентов, есть две, дублирующие друг друга, ветви реестра. Если приложение 32-разрядное, то при вызове COM-библиотеки ему "подставляется" один вариант ветви, а если 64-разрядное — другой. И получается ошибка "не могу создать ActiveX компонент".

    Могу предположить следующее: Ваша dll регистрируется как inproc-сервер в COM-ветви для 32-разрядных приложений. А 64-разрядный MS Word, выполняя макрос и пытаясь создать соответствующий COM-объект, обращается к 64-разрядной COM-ветви реестра.
    Re[6]: Не работает в MS Word 2010
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 17.10.11 19:46
    Оценка:
    Здравствуйте, SGHouse, Вы писали:

    SGH>Хотя дотнет проекты по натуре кросс-платформенны, но почему-то у меня в Visual Studio 2008 в настройках C#-проекта в разделе "построение" есть такая интересная опция "конечная платформа"... И там можно выбрать "Any CPU", "x32", "x64". Собственно, первый вопросец: у Вас проект собирается под Any CPU?


    Ну, я вообще-то и в донтете, и в студии, и ком разбираюсь довольно хорошо. Естественно, сборки Any CPU. Правда, в них есть микроскопический объем платформно-зависимого кода. В нем, конечно, возможна ошибка. Но в любом случае они не должны были бы приводить к тому что сборку нельзя загрузить. Должны были бы быть рантайм-ылеты.

    Как, кстати, выглядят проблемы с шаблоном в 64-битном Офисе? Говорит, что не может создать объект?

    SGH>Есть несколько типов COM-объектов, один из них — это inproc. По сути это обыкновенная dll'ка.


    Я в курсе. Если заглянуть в список моих статей, то можно заметить, что 10 лет назад я плотно занимался КОМ-ом.

    SGH>32-разрядную dll-ку можно подгрузить только 32-разрядный процесс, а 64-разрядную — в, соответственно, 64-разрядный. А потому в 64-разрядной OS в том, что относится к регистрации COM-компонентов, есть две, дублирующие друг друга, ветви реестра. Если приложение 32-разрядное, то при вызове COM-библиотеки ему "подставляется" один вариант ветви, а если 64-разрядное — другой. И получается ошибка "не могу создать ActiveX компонент".


    Приложение дотнетное. Потому и не понятно, почему не работает. Возможно проблемы с регистрацией. Регистрация делается встроенным студийным инсталлятором (из VS 2008). У сборки просто установлено свойство Register установлено в vsdrpCOM. Что он там делает я не знаю.

    SGH>Могу предположить следующее: Ваша dll регистрируется как inproc-сервер в COM-ветви для 32-разрядных приложений. А 64-разрядный MS Word, выполняя макрос и пытаясь создать соответствующий COM-объект, обращается к 64-разрядной COM-ветви реестра.


    Возможно.

    Как посмотреть HKEY_CLASSES_ROOT для 64-битных комовских сборок?

    ЗЫ

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

    Так же прошу как можно боле подробно описать симптомы возникающие в 64-битном ворде.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[7]: Не работает в MS Word 2010
    От: SGHouse Россия armag.newmail.ru
    Дата: 18.10.11 09:23
    Оценка: 15 (1)
    Здравствуйте, VladD2, Вы писали:

    VD>Здравствуйте, SGHouse, Вы писали:


    SGH>>Хотя дотнет проекты по натуре кросс-платформенны, но почему-то у меня в Visual Studio 2008 в настройках C#-проекта в разделе "построение" есть такая интересная опция "конечная платформа"... И там можно выбрать "Any CPU", "x32", "x64". Собственно, первый вопросец: у Вас проект собирается под Any CPU?


    VD>Ну, я вообще-то и в донтете, и в студии, и ком разбираюсь довольно хорошо. Естественно, сборки Any CPU. Правда, в них есть микроскопический объем платформно-зависимого кода. В нем, конечно, возможна ошибка. Но в любом случае они не должны были бы приводить к тому что сборку нельзя загрузить. Должны были бы быть рантайм-ылеты.


    VD>Как, кстати, выглядят проблемы с шаблоном в 64-битном Офисе? Говорит, что не может создать объект?


    SGH>>Есть несколько типов COM-объектов, один из них — это inproc. По сути это обыкновенная dll'ка.


    VD>Я в курсе. Если заглянуть в список моих статей, то можно заметить, что 10 лет назад я плотно занимался КОМ-ом.


    Прошу прощения, если мои предположения оказались чересчур тривиальными.

    SGH>>32-разрядную dll-ку можно подгрузить только 32-разрядный процесс, а 64-разрядную — в, соответственно, 64-разрядный. А потому в 64-разрядной OS в том, что относится к регистрации COM-компонентов, есть две, дублирующие друг друга, ветви реестра. Если приложение 32-разрядное, то при вызове COM-библиотеки ему "подставляется" один вариант ветви, а если 64-разрядное — другой. И получается ошибка "не могу создать ActiveX компонент".


    VD>Приложение дотнетное. Потому и не понятно, почему не работает. Возможно проблемы с регистрацией. Регистрация делается встроенным студийным инсталлятором (из VS 2008). У сборки просто установлено свойство Register установлено в vsdrpCOM. Что он там делает я не знаю.


    SGH>>Могу предположить следующее: Ваша dll регистрируется как inproc-сервер в COM-ветви для 32-разрядных приложений. А 64-разрядный MS Word, выполняя макрос и пытаясь создать соответствующий COM-объект, обращается к 64-разрядной COM-ветви реестра.


    VD>Возможно.


    VD>Как посмотреть HKEY_CLASSES_ROOT для 64-битных комовских сборок?


    VD>ЗЫ


    VD>Со своей стороны хочу попробовать описанные здесь действия. Есть проблема связанная с выбором версии дотнета вордовским процессом. Возможно причина именно в ней, а не в 64-битности.


    VD>Так же прошу как можно боле подробно описать симптомы возникающие в 64-битном ворде.


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

    Проблема в регистрации. Подробно про маппинг ветвей реестра я нашёл здесь. В деталях ситуация следующая. Я поставил AuthoringPack "just for me", и он зарегистрировал свой ProgId в ветви HKCU\Software\Classes\RsdnMlAutomation. CLSID {xxx}, указанный там, ссылается на HKCU\Software\Classes\Wow6432Node\CLSID\{xxx}, что объясняется информацией, приведённой по ссылке выше. Получается, что 32-битное приложение, обращаясь к HKCU\Software\Classes\CLSID\{xxx} в реальности обращается в ...\Wow6432Node\... (маппинг делается OS) и получает весь блок информации этого CLSID'а. А 64-битное приложение обращается к реальной ветви HKCU\Software\Classes\CLSID\, а там CLSID'а {xxx} нет. В итоге, просто скопировав этот ключ из HKCU\Software\Classes\Wow6432Node\CLSID\ в HKCU\Software\Classes\CLSID\ я получил нормально работающий AuthoringPack.
    Re[8]: Не работает в MS Word 2010
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 18.10.11 13:43
    Оценка:
    Здравствуйте, SGHouse, Вы писали:

    SGH>Проблема в регистрации. Подробно про маппинг ветвей реестра я нашёл здесь. В деталях ситуация следующая. Я поставил AuthoringPack "just for me", и он зарегистрировал свой ProgId в ветви HKCU\Software\Classes\RsdnMlAutomation. CLSID {xxx}, указанный там, ссылается на HKCU\Software\Classes\Wow6432Node\CLSID\{xxx}, что объясняется информацией, приведённой по ссылке выше. Получается, что 32-битное приложение, обращаясь к HKCU\Software\Classes\CLSID\{xxx} в реальности обращается в ...\Wow6432Node\... (маппинг делается OS) и получает весь блок информации этого CLSID'а. А 64-битное приложение обращается к реальной ветви HKCU\Software\Classes\CLSID\, а там CLSID'а {xxx} нет. В итоге, просто скопировав этот ключ из HKCU\Software\Classes\Wow6432Node\CLSID\ в HKCU\Software\Classes\CLSID\ я получил нормально работающий AuthoringPack.


    Спасибо за помощь!

    В ближайшее время постараюсь описать ситуацию в статье, а потом попробую придумать что-то, чтобы инсталлятор правильно регистрировал КОМ-объекты в реестре. Боюсь, что придется переходить с инсталлятор встроенного в студию на Wix.

    Хотелось бы еще попросить проверить корректность работы самой интеграции в 64-битном окружении (так как она не тестировалась).

    Попробуйте сгенерировать ХМЛ (нажать соответствующую кнопку в тулбаре) с ошибками. При этом должно появиться окно со списком ошибок. Далее попробуйте изменить размеры этого окна. Дело в том, что там используется хак. Окна форм в ворде не ресайзятся. Я использовал SetWindowLong(hwnd, GWL_STYLE, L2 :> IntPtr); для того чтобы можно было изменять их размеры. Причем код там не тривиальный.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[8]: Не работает в MS Word 2010
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 18.10.11 13:46
    Оценка:
    Здравствуйте, SGHouse, Вы писали:

    SGH>Проблема в регистрации. Подробно про маппинг ветвей реестра я нашёл здесь. В деталях ситуация следующая. Я поставил AuthoringPack "just for me", и он зарегистрировал свой ProgId в ветви HKCU\Software\Classes\RsdnMlAutomation. CLSID {xxx}, указанный там, ссылается на HKCU\Software\Classes\Wow6432Node\CLSID\{xxx}, что объясняется информацией, приведённой по ссылке выше. Получается, что 32-битное приложение, обращаясь к HKCU\Software\Classes\CLSID\{xxx} в реальности обращается в ...\Wow6432Node\... (маппинг делается OS) и получает весь блок информации этого CLSID'а. А 64-битное приложение обращается к реальной ветви HKCU\Software\Classes\CLSID\, а там CLSID'а {xxx} нет. В итоге, просто скопировав этот ключ из HKCU\Software\Classes\Wow6432Node\CLSID\ в HKCU\Software\Classes\CLSID\ я получил нормально работающий AuthoringPack.


    Кстати, сделайте, пожалуйста, экспорт этой (этих) веток в формате regex.exe. Чтобы другие могли им воспользоваться пока не решим проблем с инсталлятором.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[9]: Не работает в MS Word 2010
    От: kochetkov.vladimir Россия https://kochetkov.github.io
    Дата: 18.10.11 14:21
    Оценка:
    Здравствуйте, VladD2, Вы писали:

    VD>Боюсь, что придется переходить с инсталлятор встроенного в студию на Wix.


    .\snippets\WordToRsdnMlConverter\Setup\Setup.vdproj — это оно? Я со встроенным в студию деплоем не работал, но, на первый взгляд, перетащить это на Wix — не проблема, давай сделаю (с учетом этого обсуждения по поводу реестра)?

    [Интервью] .NET Security — это просто
    Автор: kochetkov.vladimir
    Дата: 07.11.17
    Re[10]: Не работает в MS Word 2010
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 18.10.11 15:11
    Оценка: +1
    Здравствуйте, kochetkov.vladimir, Вы писали:

    VD>>Боюсь, что придется переходить с инсталлятор встроенного в студию на Wix.


    KV>.\snippets\WordToRsdnMlConverter\Setup\Setup.vdproj — это оно? Я со встроенным в студию деплоем не работал, но, на первый взгляд, перетащить это на Wix — не проблема, давай сделаю (с учетом этого обсуждения по поводу реестра)?


    Давай! Я в Виксе не силен. Там инсталлятор очень простой. Единственная проблема — это регистрация ком-объектов.
    Проект лежит здесь https://github.com/rsdn/nemerle/tree/master/snippets/WordToRsdnMlConverter

    Только закончи, плиз, с немерловым инсталлятором. Мы к финишной черте приближаемся. И фитбэк нужен как никогда.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
    Re[9]: Не работает в MS Word 2010
    От: SGHouse Россия armag.newmail.ru
    Дата: 19.10.11 14:22
    Оценка:
    Здравствуйте, VladD2, Вы писали:

    VD>Здравствуйте, SGHouse, Вы писали:


    SGH>>Проблема в регистрации. Подробно про маппинг ветвей реестра я нашёл здесь. В деталях ситуация следующая. Я поставил AuthoringPack "just for me", и он зарегистрировал свой ProgId в ветви HKCU\Software\Classes\RsdnMlAutomation. CLSID {xxx}, указанный там, ссылается на HKCU\Software\Classes\Wow6432Node\CLSID\{xxx}, что объясняется информацией, приведённой по ссылке выше. Получается, что 32-битное приложение, обращаясь к HKCU\Software\Classes\CLSID\{xxx} в реальности обращается в ...\Wow6432Node\... (маппинг делается OS) и получает весь блок информации этого CLSID'а. А 64-битное приложение обращается к реальной ветви HKCU\Software\Classes\CLSID\, а там CLSID'а {xxx} нет. В итоге, просто скопировав этот ключ из HKCU\Software\Classes\Wow6432Node\CLSID\ в HKCU\Software\Classes\CLSID\ я получил нормально работающий AuthoringPack.


    VD>Кстати, сделайте, пожалуйста, экспорт этой (этих) веток в формате regex.exe. Чтобы другие могли им воспользоваться пока не решим проблем с инсталлятором.


    В каком формате? Наверное, regedit.exe? Экспорт в аттаче. Однако нужно помнить, это пути там к установке получаются жёстко прописанными. Кто ставит в другую директорию, работать не будет. Кроме того деинсталляции для этого "хака" нет.
    Re[10]: Не работает в MS Word 2010
    От: SGHouse Россия armag.newmail.ru
    Дата: 19.10.11 14:23
    Оценка:
    Здравствуйте, SGHouse, Вы писали:

    SGH>Здравствуйте, VladD2, Вы писали:


    VD>>Здравствуйте, SGHouse, Вы писали:


    SGH>>>Проблема в регистрации. Подробно про маппинг ветвей реестра я нашёл здесь. В деталях ситуация следующая. Я поставил AuthoringPack "just for me", и он зарегистрировал свой ProgId в ветви HKCU\Software\Classes\RsdnMlAutomation. CLSID {xxx}, указанный там, ссылается на HKCU\Software\Classes\Wow6432Node\CLSID\{xxx}, что объясняется информацией, приведённой по ссылке выше. Получается, что 32-битное приложение, обращаясь к HKCU\Software\Classes\CLSID\{xxx} в реальности обращается в ...\Wow6432Node\... (маппинг делается OS) и получает весь блок информации этого CLSID'а. А 64-битное приложение обращается к реальной ветви HKCU\Software\Classes\CLSID\, а там CLSID'а {xxx} нет. В итоге, просто скопировав этот ключ из HKCU\Software\Classes\Wow6432Node\CLSID\ в HKCU\Software\Classes\CLSID\ я получил нормально работающий AuthoringPack.


    VD>>Кстати, сделайте, пожалуйста, экспорт этой (этих) веток в формате regex.exe. Чтобы другие могли им воспользоваться пока не решим проблем с инсталлятором.


    SGH>В каком формате? Наверное, regedit.exe? Экспорт в аттаче. Однако нужно помнить, это пути там к установке получаются жёстко прописанными. Кто ставит в другую директорию, работать не будет. Кроме того деинсталляции для этого "хака" нет.


    Если аттач не прикрепился, вот, на всякий случай, содержимое. Благо, оно небольшое.

    -----------

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Classes\CLSID\{97FD4A3D-2244-40D2-BF79-B76C1BB0A083}]
    @="RsdnMlAutomation"

    [HKEY_CURRENT_USER\Software\Classes\CLSID\{97FD4A3D-2244-40D2-BF79-B76C1BB0A083}\Implemented Categories]

    [HKEY_CURRENT_USER\Software\Classes\CLSID\{97FD4A3D-2244-40D2-BF79-B76C1BB0A083}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]

    [HKEY_CURRENT_USER\Software\Classes\CLSID\{97FD4A3D-2244-40D2-BF79-B76C1BB0A083}\InprocServer32]
    @="mscoree.dll"
    "ThreadingModel"="Both"
    "Assembly"="XWordToRsdnMlConverter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e080a9c724e2bfcd"
    "CodeBase"="C:\\Program Files (x86)\\RSDN\\RSDN Authoring Pack 2\\XWordToRsdnMlConverter.dll"
    "Class"="RsdnMlAutomation"
    "RuntimeVersion"="v2.0.50727"

    [HKEY_CURRENT_USER\Software\Classes\CLSID\{97FD4A3D-2244-40D2-BF79-B76C1BB0A083}\InprocServer32\1.0.0.0]
    "Assembly"="XWordToRsdnMlConverter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e080a9c724e2bfcd"
    "CodeBase"="C:\\Program Files (x86)\\RSDN\\RSDN Authoring Pack 2\\XWordToRsdnMlConverter.dll"
    "RuntimeVersion"="v2.0.50727"
    "Class"="RsdnMlAutomation"

    [HKEY_CURRENT_USER\Software\Classes\CLSID\{97FD4A3D-2244-40D2-BF79-B76C1BB0A083}\ProgId]
    @="RsdnMlAutomation"
    Re[10]: Не работает в MS Word 2010
    От: VladD2 Российская Империя www.nemerle.org
    Дата: 19.10.11 14:28
    Оценка:
    Здравствуйте, SGHouse, Вы писали:

    VD>>Кстати, сделайте, пожалуйста, экспорт этой (этих) веток в формате regex.exe. Чтобы другие могли им воспользоваться пока не решим проблем с инсталлятором.


    SGH>В каком формате? Наверное, regedit.exe? Экспорт в аттаче.


    В каком еще атаче? Это же форум.

    SGH>Однако нужно помнить, это пути там к установке получаются жёстко прописанными. Кто ставит в другую директорию, работать не будет. Кроме того деинсталляции для этого "хака" нет.


    Это, я думаю, должно быть понятно тем кто захочет использовать этот скрипт.
    Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.