Во всех случаях возвращается пустая строка нулевой длины, для
всех &.dir-name; &.top-dir-name; &.root;, вне зависимости в каких вложениях
папках запускался этот скрипт. Такое ощущение, что у меня они вообще не работают, даже во вложенных папках.
2) Что делает конструкция <![CDATA[xxxxxxxx]] ? Почему в неё надо облекать иногда что-то, а иногда можно не облекать?
3) Я пытался сделать простую вещь: чтобы при переходе на текущий раздел сайта его название секции выделялась жирным,
очень долго мучался, в итоге получился такой код:
Стас, я понимаю, что гружу вас излишне, но вами указанная строка:
<?xml version="1.0" encoding="windows-1251" ?>
проходит на ура... но не дает никакого эффекта. Более того, она действительно переключает кодировку с дефолтной UTF-8 по документации насколько я её понял, но не в реальной жизни.
Мне кажется, что у меня более сложный случай, вероятно скорее всего вот этот:
Я просто плохо во всем этом разбираюсь, может вы подскажите, как же всё-таки заставить отображать виндовую кодировку а не каракули, до полного триумфа осталось лишь это обидное препятствие...
Заранее извиняюсь за повторный вопрос :-)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
1/ данные директивы срабатывают при сборке сайта, но только для файлов-исходников (с расширением .src по умолчанию). именно эти файлы вставляются в шаблоны и копируются в таком виде в целевую директорию. внутри остальных файлов никаких подстановок не производится и они копируются, основываясь на дате модификации целевого файла.
2/ конструкция <![CDATA[]]> -- стандартный способ передавать html-тэги внутри xml файлов. если бы её не было, то html воспринимался бы как часть xml-файла. если значение, которое вы передаёте, не содержит спецсимволов html (таких как <, >, &, "), то заключать его в cdata не обязательно
3.1/ ответ на первую часть вопроса -- наличие спецсимволов html в строке
<section name="home-a"><b>Home></b></section>
чтобы заработало сделайте так:
<section name="home-a"><![CDATA[<b>Home></b>]]></section>
3.2/ для вставки большого куска html-кода используйте модификацию данной директивы:
<section name="home-a" filename="путь_к_html_файлу"/>
4.1/ вы понимаете правильно, только в команде .replace второй параметр является не строкой, а именем секции
4.2/ .print (секция, значение) -- команда для замены определённой секции на строку, идущую вторым параметром
.replace (секция1, секция2) -- команда для замены определённой секции на другую секцию. есть также возможность заменить .root на значение секции2.
благодарю вас за интерес
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Собственно, чего хочу от этого: хочу чтобы все исходники .src
вставлялись в шаблон main.html, все исходники .home
вставлялись в шаблон home.html. Не работает - всё вставляется всё равно
в .src :-( Если здесь убрать <template>base/main.html</template> - то
генерируются пустые страницы.
В самом скрипте при компиляции вроде бы отображает эти связи:
Default template ./base/main.html (comment)
Template for .src ./base/main.html (comment)
Template for .home ./base/home.html (comment)
2) Хотел бы, чтобы в выше описанном случае, все сгенерированные .src вываливались в папку <target>trg1</target>, а все .home -
в папку trg2, как описать это переопределение?
3) Как закомментировать записи в конфигах-шаблонах?
4) Что значит надпись "(comment)" на странице результатов
компиляции (в колонке value)?
1/ файлами-исходниками считаются файлы с расширением .src. если у вас есть несколько шаблонов, то файлы-исходники могут иметь двойное расширение:
index.src для base/main.html
index.home.src для base/home.html
2/ похоже, проще компилировать два сайта отдельно.
3/ если имеются ввиду коментарии в xml-файле, то они такие же, как и в html: <!-- -->
4/ если наведёте мышку на слово (comment), всплывёт подсказка по текущей строке
5/ спасибо, ошибка исправлена
надеюсь, помог
удачи
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ещё есть вопрос, животрепещущий можно сказать, пытаюсь в секциях описать меню на русском языке (Win1251) - OSB при компиляции клинит на коммандах типа:
xml по умолчанию считает, что вы используете кодировку utf-8. я вам тоже рекомендую использовать именно эту кодировку для сайта на русском языке. особенно, если на страницах сайта может появиться комментарий на нерусском языке (поверьте, такие тоже бывают). простой пример--мы с вами общаемся по-русски на сайте, где основным является совсем другой язык. разработчики sf.net разумно предположили, что люди из разных стран должны иметь возможность помогать друг другу, используя для этого родной для них язык.
если вы всё же решите, что ваш сайт должен использовать другую кодировку, то опишите её в первой строке xml-файла, например, так:
<?xml version="1.0" encoding="windows-1251" ?>
мне кажется (хотя я и не проверял), что это должно сработать. если нет, обращайтесь к первоисточнику: http://www.w3.org/TR/REC-xml/#charencoding http://www.opennet.ru/docs/RUS/XML/#charencoding (официальный русский перевод)
удачи вам ещё раз, я чувствую, что кучу мы почти разгребли :-)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Здравствуйте, Стас!
Пытаюсь освоить вашу, безусловно, очень оригинальную и интересную систему сборки сайта. Но не все гладко, есть вопросы.
1) Во-первых, как я не крутил, куда бы не вставлял директивы
&.dir-name;
&.top-dir-name;
&.root;
в файл-исходник, пытался даже оформить макросом вот так вот:
<macro name="test" params="1"><![CDATA[<a href="&.root;">aLink</a>]]></macro>
Во всех случаях возвращается пустая строка нулевой длины, для
всех &.dir-name; &.top-dir-name; &.root;, вне зависимости в каких вложениях
папках запускался этот скрипт. Такое ощущение, что у меня они вообще не работают, даже во вложенных папках.
2) Что делает конструкция <![CDATA[xxxxxxxx]] ? Почему в неё надо облекать иногда что-то, а иногда можно не облекать?
3) Я пытался сделать простую вещь: чтобы при переходе на текущий раздел сайта его название секции выделялась жирным,
очень долго мучался, в итоге получился такой код:
_sections.xml:
Соответственно &bld пришлось описать отдельно как макрос в config.xml.
Почему не работает самое простое вида:
Как эту задачу можно было сделать проще? А если в секцию нужно вставить какой-то большой кусок html-кода, то как его туда засунуть?
4)
Не совсем понимаю смысл:
.replace (.root, value) - replace .root with value
Это значит, что в пределах только данного данного исходника(документа) .root
будет равен value? Это как бы локальная для данного документа подмена?
Чем отличается .print от .replace?
.replace (section1, value)
.print (section1, value)
Заранее спасибо!
Стас, я понимаю, что гружу вас излишне, но вами указанная строка:
<?xml version="1.0" encoding="windows-1251" ?>
проходит на ура... но не дает никакого эффекта. Более того, она действительно переключает кодировку с дефолтной UTF-8 по документации насколько я её понял, но не в реальной жизни.
Мне кажется, что у меня более сложный случай, вероятно скорее всего вот этот:
http://perl.blogit.ru/enc-xml-parser
Я просто плохо во всем этом разбираюсь, может вы подскажите, как же всё-таки заставить отображать виндовую кодировку а не каракули, до полного триумфа осталось лишь это обидное препятствие...
Заранее извиняюсь за повторный вопрос :-)
может, попробуете указать кодировку и в html-шаблоне? как-нибудь так:
<html>
<head>
...
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
...
</head>
<body>
...
&.text;
...
</body>
</html>
добрый вечер
итак.
1/ данные директивы срабатывают при сборке сайта, но только для файлов-исходников (с расширением .src по умолчанию). именно эти файлы вставляются в шаблоны и копируются в таком виде в целевую директорию. внутри остальных файлов никаких подстановок не производится и они копируются, основываясь на дате модификации целевого файла.
2/ конструкция <![CDATA[]]> -- стандартный способ передавать html-тэги внутри xml файлов. если бы её не было, то html воспринимался бы как часть xml-файла. если значение, которое вы передаёте, не содержит спецсимволов html (таких как <, >, &, "), то заключать его в cdata не обязательно
3.1/ ответ на первую часть вопроса -- наличие спецсимволов html в строке
<section name="home-a"><b>Home></b></section>
чтобы заработало сделайте так:
<section name="home-a"><![CDATA[<b>Home></b>]]></section>
3.2/ для вставки большого куска html-кода используйте модификацию данной директивы:
<section name="home-a" filename="путь_к_html_файлу"/>
4.1/ вы понимаете правильно, только в команде .replace второй параметр является не строкой, а именем секции
4.2/ .print (секция, значение) -- команда для замены определённой секции на строку, идущую вторым параметром
.replace (секция1, секция2) -- команда для замены определённой секции на другую секцию. есть также возможность заменить .root на значение секции2.
благодарю вас за интерес
Здравствуйте, Стас! Давайте продолжим, что-то уже получается, а что-то нет, хочется думать что пока.
1) В конфиге определил такую вещь:
<template>base/main.html</template>
<template suffix=".src">base/main.html</template>
<template suffix=".home">base/home.html</template>
<suffix action="build" default="html">.src;.home</suffix>
Собственно, чего хочу от этого: хочу чтобы все исходники .src
вставлялись в шаблон main.html, все исходники .home
вставлялись в шаблон home.html. Не работает - всё вставляется всё равно
в .src :-( Если здесь убрать <template>base/main.html</template> - то
генерируются пустые страницы.
В самом скрипте при компиляции вроде бы отображает эти связи:
Default template ./base/main.html (comment)
Template for .src ./base/main.html (comment)
Template for .home ./base/home.html (comment)
2) Хотел бы, чтобы в выше описанном случае, все сгенерированные
.src вываливались в папку <target>trg1</target>, а все .home -
в папку trg2, как описать это переопределение?
3) Как закомментировать записи в конфигах-шаблонах?
4) Что значит надпись "(comment)" на странице результатов
компиляции (в колонке value)?
5) По ссылке http://osbtools.googlepages.com/tutorial.sections.html
в вашем руководстве имеется листинг:
<section name="description">
<![CDATA[&.section(home);
:: &.section(download);
:: &.section(start);
:: &.section(tutorial);
:: &.section(reference);
:: &.section(support);
:: &.section(links);
</section>
Правильно ли я понимаю, что конструкция CDATA открывается и всегда
закрывается обратными скобками ]]>, тогда как здесь она не закрыта,
это почему?
Спасибо!
1/ файлами-исходниками считаются файлы с расширением .src. если у вас есть несколько шаблонов, то файлы-исходники могут иметь двойное расширение:
index.src для base/main.html
index.home.src для base/home.html
2/ похоже, проще компилировать два сайта отдельно.
3/ если имеются ввиду коментарии в xml-файле, то они такие же, как и в html: <!-- -->
4/ если наведёте мышку на слово (comment), всплывёт подсказка по текущей строке
5/ спасибо, ошибка исправлена
надеюсь, помог
удачи
Спасибо, конечно помог, Стас!
Ещё есть вопрос, животрепещущий можно сказать, пытаюсь в секциях описать меню на русском языке (Win1251) - OSB при компиляции клинит на коммандах типа:
<site title="Иностранная литература">
или
<section name="home"><![CDATA[<a href="&root_dir;">О проекте</a>]]></section>
Как побороть?
Спасибо!
xml по умолчанию считает, что вы используете кодировку utf-8. я вам тоже рекомендую использовать именно эту кодировку для сайта на русском языке. особенно, если на страницах сайта может появиться комментарий на нерусском языке (поверьте, такие тоже бывают). простой пример--мы с вами общаемся по-русски на сайте, где основным является совсем другой язык. разработчики sf.net разумно предположили, что люди из разных стран должны иметь возможность помогать друг другу, используя для этого родной для них язык.
если вы всё же решите, что ваш сайт должен использовать другую кодировку, то опишите её в первой строке xml-файла, например, так:
<?xml version="1.0" encoding="windows-1251" ?>
мне кажется (хотя я и не проверял), что это должно сработать. если нет, обращайтесь к первоисточнику:
http://www.w3.org/TR/REC-xml/#charencoding
http://www.opennet.ru/docs/RUS/XML/#charencoding (официальный русский перевод)
удачи вам ещё раз, я чувствую, что кучу мы почти разгребли :-)