Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Phrase Level Elements

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 47. Quickbook 1.6

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Phrase Level Elements

['italic], [*bold], [_underline], [^teletype], [-strikethrough]

будет генерировать:

Итальянский,жирный,подчеркивающий,<teletype>,прорыв

Как и все не терминальные элементы уровня фразы, это, конечно, может быть вложено:

[*['bold-italic]]

будет генерировать:

дерзко-итальянский

Когда вам нужен контент, который может или должен быть заменен пользователем, используйте синтаксис:

[~replacement]

Это создаст:

<replacement>

["A question that sometimes drives me hazy: am I or are the others crazy?]--Einstein

будет генерировать:

& #8220;Вопрос, который иногда сбивает меня с толку: я или остальные сумасшедшие?& #8221;— Эйнштейн

Обратите внимание на правильные левые и правые кавычки. Кроме того, хотя вы можете просто использовать обычные кавычки, такие как «цитируемые», наша цитата выше будет генерировать правильные котировки DocBook (например,quoted).

Как и все элементы фразы, цитаты могут быть вложены. Пример:

["Here's the rule for bargains: ["Do other men, for they would do you.] That's
the true business precept.]

будет генерировать:

& #8220;Вот правило для сделок:& #8216;Делайте других людей, потому что они будут делать вас.& #8217;Это истинное деловое предписание.& #8221;

Простая разметка для форматирования текста, распространенная во многих приложениях, теперь поддерживается:

/italic/, *bold*, _underline_, =teletype=

будет генерировать:

курсив,смелый,подчеркивающий,<teletype>

В отличие от стандартной схемы форматирования QuickBook, правила для более простых альтернатив намного строже.

  • Простые разметки не могут гнездиться. Вы можете комбинировать простую разметку с вложенной разметкой.
  • Простые разметки не могут содержать какую-либо другую форму разметки быстрой книги.
  • Некосмический персонаж должен следовать за ведущей разметкой.
  • Некосмический персонаж должен предшествовать следящей разметке
  • Пространство или пунктуация должны следовать следующей разметке
  • Если соответствующая разметка не может быть найдена в блоке, форматирование не будет применяться. Это делается для того, чтобы непревзойденные разметки форматирования, которые могут быть распространенной ошибкой, не повредили ничего за один блок. Мы не хотим, чтобы остальная часть документа была выделена жирным шрифтом только потому, что мы забыли отставание. Один блок завершается двумя концами линий или близкой скобкой: ''.
  • Линия, начинающаяся со звезды, будет интерпретироваться как неупорядоченный список. См.Неупорядоченные списки.

Table 47.1. More Formatting Samples

Разметка

Результат

<*Bold*>

Смелый

<*Is bold*>

Смелый

<* Not bold* *Not bold * * Not bold *>

* Не смелый * * Не смелый * * Не смелый *

<This*Isn't*Bold (no bold)>

Это не смело

<(*Bold Inside*) (parenthesis not bold)>

Смелый внутри(парентезис не смелый)

<*(Bold Outside)* (parenthesis bold)>

(Смелый снаружи)(смелый парентез)

<3*4*5 = 60 (no bold)>

3*4*5 = 60 (без смелости)

<3 * 4 * 5 = 60 (no bold)>

3 * 4 * 5 = 60 (без смелости)

<3 *4* 5 = 60 (4 is bold)>

345 = 60 (4 смело)

<*This is bold* this is not *but this is*>

Это смелоэто не, но это

<*This is bold*.>

Это смело

.

<*B*. (bold B)>

B[смелый B]

<['*Bold-Italic*]>

Смелый итальянский

<*side-by*/-side/>

бок о бок- бок


Как уже упоминалось, простые разметки не могут пройти мимо одного блока. Текст от "иметь" до "полный" в следующем пункте будет выделен жирным шрифтом:

Baa baa black sheep, *have you any wool?
Yes sir, yes sir, three bags full!*
One for the master, one for the dame,
And one for the little boy who lives down the lane.

Баа-баа черная овца,есть ли у вас шерсть? Да, сэр, да, сэр, три полных мешка!Один для хозяина, один для дамы, и один для маленького мальчика, который живет по переулку.

Но в следующем пункте жирный шрифт не применяется:

Baa baa black sheep, *have you any wool?
Yes sir, yes sir, three bags full!
One for the master, one for the dame,
And one for the little boy who lives down the lane.

Baa baa черная овца, у вас есть шерсть? Да, сэр, да, сэр, три полных мешка! Один для хозяина, один для дамы, и один для маленького мальчика, который живет по переулку.

Это создает фразу из книги с атрибутом<role>, который можно использовать для классификации фразы. Это может быть использовано для обозначения текста для использования, которое не покрыто в другом месте. Docbook<role>будет генерировать html-класс, который можно использовать для стилистики текста. И таблицы стилей xsl могут быть настроены для обработки определенных ролей специально при создании pdf.

В бустерной книге css таблицы стилей и xsl таблицы стилей содержат поддержку ограниченного числа цветов, которые могут быть использованы с<role>. Например, если вы пишете:

[role red Text content]

Вы получите красный текст, если используете boostbook css (для html) или boostbook xsl для создания pdfs.

Полный список цветов, которые будут доступны:

  • Красный
  • Зеленый
  • лайм
  • синий
  • Флот
  • Желтый
  • пурпур
  • Индиго
  • циан
  • Фиолетовый
  • Золото
  • Серебро
  • Серый

Наложение кода в абзацах довольно распространено при написании документации на C++. Мы предоставляем очень простую разметку для этого. Например, это:

This text has inlined code `int main() { return 0; }` in it.

будет генерировать:

Этот текст содержит код<int main() { return 0; }>. Код будет выделен синтаксисом.

[Note] Note

Мы просто прилагаем код клещом:<"`">, а не единственной цитатой:<"'">. Также обратите внимание, что<`some code`>предпочтительнее<[^some code]>.

Преформатированный код просто начинается с пробела или вкладки (см.Код). Однако такой простой синтаксис не может использоваться в качестве элементов фразы в списках (см.). Упорядоченные спискииНеупорядоченные списки, таблицы (см.Таблицы) и т.д. Встроенный код (см. выше) может. Проблема в том, что встроенный код не позволяет форматировать новые линии, пробелы и вкладки. Они потеряны.

Мы предоставляем разметку уровня фразы, которая является смесью между ними. Используя двойной или тройной тик, вместо одного тика, мы советуем QuickBook использовать предварительно отформатированные блоки кода. Пример:

``
    #include <iostream>
    int main()
    {
        std::cout << "Hello, World!" << std::endl;
        return 0;
    }
``

или:

```
    #include <iostream>
    int main()
    {
        std::cout << "Hello, World!" << std::endl;
        return 0;
    }
```

будет генерировать:

#include <iostream>
int main()
{
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

Если документ содержит более одного типа исходного кода, то режим источника может динамически изменяться по мере обработки документа. Все документы QuickBook изначально находятся в режиме C++ по умолчанию, хотя альтернативное начальное значение может быть установлено в разделеДокумент.

Чтобы изменить режим источника, используйте разметку<[source-mode]>, где<source-mode>является одним из поддерживаемых режимов. Например, это:

Python's [python] `import` is rather like C++'s [c++] `#include`. A
C++ comment `// looks like this` whereas a Python comment [python]
`# looks like this`.

будет генерировать:

Python<import>похож на C++<#include>. Комментарий на C++<// looks like this>, а комментарий на Python<#looks like this>.

Table 47.2. Supported Source Modes

Режим

Source Mode Markup

C++

<[c++]>

Python

<[python]>

Простой текст

<[teletype]>


[Note] Note

Строки исходного режима являются нижними.

[br]
[Warning] Warning

<[br]>Создает недействительный документ. В основном это работает нормально, но могут возникнуть проблемы, особенно при использовании альтернативного процессора.

[#named_anchor]

Именованный якорь - это крюк, на который можно ссылаться по ссылке в другом месте документа. Затем вы можете ссылаться на якорь с<[link named_anchor Some link text]>. СмотриЯкорные ссылки,РазделиЗаголовок.

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

[@http://www.boost.org this is [*boost's] website....]

будет генерировать:

этоповышениеWEB

URL-ссылки, где текст ссылки является самой ссылкой, являются общими. Пример:

see http://spirit.sourceforge.net/

Таким образом, когда текст отсутствует в разметке ссылки, предполагается URL. Пример:

see [@http://spirit.sourceforge.net/]

будет генерировать:

см.http://spirit.sourceforge.net/

Boostbook также поддерживает пользовательскую схему URL для ссылки на файлы в дистрибутиве повышения:

[@boost:/libs/spirit/index.html the Boost.Spirit documentation]

Повысить. Духовная документация

Обратите внимание, что это доступно только при использовании BoostBook, и только для ссылок - его нельзя использовать для изображений.

Вы можете связать в документе, используя:

[link document_id.section_id.normalized_header_text The link text]

См. разделыРазделиЗаголовокдля получения дополнительной информации.

Кроме того, вы можете связать внутренне с XML-защитой, например:

[link xml.refentry The link text]

В результате этого<<link linkend="xml.refentry">The link text</link>>.

Как и URL, текст ссылки является необязательным. Если этого нет, текст ссылки автоматически будет ребентом. Пример:

[link xml.refentry]

В этом случае он превращается в<<link linkend="xml.refentry">xml.refentry</link>>.

Если вы хотите связать с функцией, классом, членом, перечислением, концепцией, глобальным или заголовком в справочном разделе, вы можете использовать:

[funcref fully::qualified::function_name The link text]
[classref fully::qualified::class_name The link text]
[memberref fully::qualified::member_name The link text]
[enumref fully::qualified::enum_name The link text]
[macroref MACRO_NAME The link text]
[conceptref ConceptName The link text]
[headerref path/to/header.hpp The link text]
[globalref fully::qualified::global The link text]

Опять же, текст ссылки является необязательным. Если этого нет, текст ссылки автоматически будет функцией, классом, членом, перечнем, макросом, концепцией, глобальным именем или именем заголовка. Пример:

[classref boost::bar::baz]

В качестве текста ссылки будет использоваться «boost::bar::baz».

Разметка побега используется, когда мы не хотим делать какую-либо обработку.

'''
escape (no processing/formatting)
'''

Escaping позволяет нам передавать разметку XML вBoostBookилиDocBook. Например:

'''
<emphasis role="bold">This is direct XML markup</emphasis>
'''

Это прямая разметка XML

[Important] Important

Будьте осторожны при использовании побега. Текст должен соответствовать синтаксисуBoostBook/DocBook.

Задняя косая черта может быть использована, чтобы избежать одного знака препинания. Пунктуация сразу же после обратной ударной волны проходит без какой-либо обработки. Это полезно, когда нам нужно избежать таких пунктуаций QuickBook, как<[>и<]>. Например, как избежать тройной цитаты? Просто:<\'\'\'>

<\n>имеет особое значение. Используется для генерации разрывов линий.

[Warning] Warning

<\n>теперь обесценивается, вместо этого используйте<[br]>. Хотя используйте его экономно, так как он может генерировать недействительный документ.

Сбежавшее пространство:<\>также имеет особое значение. Сбежавшее пространство удаляется с выхода.

Вы можете ввести любой 16-битный символ уникода, используя<\u>, за которым следует его 4-значный шестнадцатеричный код, или 32-битный символ, используя<\U>, за которым следует 8-значный шестнадцатеричный код. Например.

\u03B1 + \u03B2

будет генерировать:

α + β

[$image.jpg]

Из версии 1.5 также можно использовать атрибуты изображенийDocBook:

[$image.jpg [width 200in] [height 200in]]

В версии 1.3 QuickBook поддерживает сноски. Просто поместите текст сноски в блок<[footnote]>, и текст будет помещен в нижней части текущей страницы. Например, это:

[footnote A sample footnote]

.

__a_macro_identifier__

См.Макросдля деталей.

[a_template_identifier]

См.Шаблоныдля деталей.

Как и C++<#ifdef>, вы можете генерировать фразы в зависимости от наличия макроса. Пример:

[? __to_be__ To be or not to be]

Здесь фраза «Быть или не быть» будет генерироваться только в том случае, если макросимвол<__to_be__>был ранее определен. Вышеприведенная фраза ничего не сделает, поскольку мы не определили<__to_be__>. Теперь давайте определим символ:

[def __to_be__]

Попробуйте еще раз:

Быть или не быть

Да!



Спасибо Дэвиду Барретту, авторуQwiki, за то, что он поделился этими образцами и научил меня этим неясным правилам форматирования. Я вообще не был уверен, чтоSpirit, будучи более или менее формальным парсером EBNF, может справиться с контекстной чувствительностью и двусмысленностью.

Образцовая сноска


PrevUpHomeNext

Статья Phrase Level Elements раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 47. Quickbook 1.6 может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 47. Quickbook 1.6 ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:09:55/0.010601043701172/1