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

Overview

Boost , Boost.AutoIndex , Boost.AutoIndex

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

AutoIndex - это инструмент для анализа и индексации документа Boostbook/Docbook (возможно, созданного файлом Quickbook mylibrary.qbk и, возможно, использующего также Doxygen autodoc), который описывает код C/C++.

Традиционно, чтобы проиндексировать документ Docbook, вам нужно вручную добавить большое количество<>разметка: на самом деле один<указатель>для каждого события, которое должно быть проиндексировано.

Вместо этого AutoIndex автоматически сканирует один или несколько файлов заголовка C/C++ и извлекает все функции,класса,макросаитипдефа, которые определены этими заголовками, а затем вставляет<индексный термин>s в документ Docbook XML для вас.

AutoIndex также может сканировать, используя список терминов индекса, указанных в файле сценария, например index.idx. Эти условия, предоставленные вручную, могут быть необязательно регулярными выражениями и могут позволить пользователю находить ссылки на термины, которые могут не встречаться в файлах заголовка C++. Конечно, предоставление ручного списка поисковых терминов в индексе является утомительной задачей (особенно для обработки множественных чисел и вариантов) и требует достаточного знания библиотеки, чтобы угадать, что пользователи могут искать, но, по крайней мере, реальная «трудность» поиска термина и перечисления номера страницы автоматизирована.

AutoIndex создает индексные записи следующим образом:

Для каждого появления каждого поискового термина он создает две записи индекса:

  1. Поисковый термин как первичный индексный ключи заголовок разделапоявляется вв качестве субтермина.
  2. Заголовок раздела как основная запись индекса и поисковый термин как подзапись.

Таким образом, у пользователя есть два шанса найти то, что он ищет, основываясь либо на имени раздела, либо на функции,класс,макросилитипдефимя.

[Note] Note

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

Например, в Boost. Математика имени классаStudents_t_distributionимеет основную запись, в которой перечислены все разделы, в которых имя класса отображается:

students_t_eg_1

Затем эти разделы также имеют первичные записи, в которых перечислены все поисковые термины, содержащиеся в этих разделах:

students_t_eg_2

Конечно, эти автоматические индексные записи могут быть не совсем тем, что вы ищете: часто вы получите несколько ложных записей, несколько отсутствующих записей и несколько записей, где имя раздела, используемое в качестве индексной записи, не идеально. Таким образом, AutoIndex предоставляет некоторые мощные правила, основанные на регулярном выражении, которые позволяют добавлять, удалять, ограничивать или переписывать записи. Обычно всего нескольких строк в файле скрипта AutoIndex достаточно, чтобы адаптировать вывод к ожиданиям автора (и, таким образом, надеюсь, ожидания пользователя индекса тоже!).

AutoIndex также поддерживает несколько индексов (как и Docbook), и поскольку он знает, какие поисковые термины являютсяфункцией,классом,макросомилитипдефом, он может добавить необходимые атрибуты к XML, чтобы вы могли иметь отдельные индексы для каждого из этих различных типов. Эти специализированные индексы содержат только записи для функции,класса,макросаилитипдефаимен,названий разделовникогда не используются здесь в качестве основных терминов индекса, в отличие от основного индекса «включает все».

Наконец, в то время как таблицы стилей Docbook XSL создают хорошие индексы в комплекте с номерами страниц для вывода PDF, индексы HTML выглядят хуже для сравнения, поскольку они используют заголовки разделов вместо номеров страниц ... но поскольку AutoIndex использует заголовки разделов в качестве записей индекса, это приводит к большому количеству повторений, поэтому в качестве альтернативного AutoIndex можно поручить построить сам индекс. Это быстрее, чем использование таблиц стилей XSL, и теперь каждая запись индекса является гиперссылкой на соответствующий раздел:

students_t_eg_3

При генерации внутренних индексов в начале каждого индекса также есть полезная навигационная панель:

students_t_eg_4

Наконец, вы можете выбрать, какой тип контейнера XML обертывает внутренне сгенерированный индекс - это по умолчанию<раздел>...< />, но вы можете использовать либо параметры командной строки, либо Boost. Создайте функции Jamfile, чтобы выбрать альтернативную обертку - например,приложениеилиглавабудет хорошим выбором, независимо от того, что лучше всего подходит для потока документа. Вы даже можете настроить обертку контейнера на типиндекспри условии, что вы отключите генерацию индекса таблицами стилей XSL, например, установив следующие требования к сборке в Jamfile:

<format>html:<auto-index-internal>on       # Use internally generated indexes.
<auto-index-type>index                     # Use <index>...</index> as the XML wrapper.
<format>html:<xsl:param>generate.index=0   # Don't let the XSL stylesheets generate indexes.

PrevUpHomeNext

Статья Overview раздела Boost.AutoIndex Boost.AutoIndex может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Boost.AutoIndex ::


реклама


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

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