$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r64826 - in trunk/tools/quickbook: . detail doc test
From: daniel_james_at_[hidden]
Date: 2010-08-15 12:43:48
Author: danieljames
Date: 2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
New Revision: 64826
URL: http://svn.boost.org/trac/boost/changeset/64826
Log:
Ids for headings.
Added:
   trunk/tools/quickbook/test/heading_1_6.gold   (contents, props changed)
   trunk/tools/quickbook/test/heading_1_6.quickbook   (contents, props changed)
Text files modified: 
   trunk/tools/quickbook/block.hpp                |    26 ++++++++++++++++++--------              
   trunk/tools/quickbook/detail/actions.cpp       |    10 ++++++----                              
   trunk/tools/quickbook/detail/actions.hpp       |     6 ++++++                                  
   trunk/tools/quickbook/detail/actions_class.cpp |    14 +++++++-------                          
   trunk/tools/quickbook/doc/quickbook.qbk        |     2 ++                                      
   trunk/tools/quickbook/test/Jamfile.v2          |     1 +                                       
   trunk/tools/quickbook/test/heading.gold        |    14 ++++++++++++++                          
   trunk/tools/quickbook/test/heading.quickbook   |    10 +++++++++-                              
   8 files changed, 63 insertions(+), 20 deletions(-)
Modified: trunk/tools/quickbook/block.hpp
==============================================================================
--- trunk/tools/quickbook/block.hpp	(original)
+++ trunk/tools/quickbook/block.hpp	2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
@@ -146,6 +146,15 @@
                         ]
                         ;
 
+                element_id_1_6 =
+                        if_p(qbk_since(106u)) [
+                            element_id
+                        ]
+                        .else_p [
+                            eps_p                       [assign_a(actions.element_id)]
+                        ]
+                        ;
+
                 begin_section =
                        "section"
                     >> hard_space
@@ -161,13 +170,13 @@
                     h1 | h2 | h3 | h4 | h5 | h6 | h
                     ;
 
-                h = "heading" >> hard_space >> phrase   [actions.h];
-                h1 = "h1" >> hard_space >> phrase       [actions.h1];
-                h2 = "h2" >> hard_space >> phrase       [actions.h2];
-                h3 = "h3" >> hard_space >> phrase       [actions.h3];
-                h4 = "h4" >> hard_space >> phrase       [actions.h4];
-                h5 = "h5" >> hard_space >> phrase       [actions.h5];
-                h6 = "h6" >> hard_space >> phrase       [actions.h6];
+                h = "heading" >> hard_space >> element_id_1_6 >> phrase   [actions.h];
+                h1 = "h1" >> hard_space >> element_id_1_6 >> phrase       [actions.h1];
+                h2 = "h2" >> hard_space >> element_id_1_6 >> phrase       [actions.h2];
+                h3 = "h3" >> hard_space >> element_id_1_6 >> phrase       [actions.h3];
+                h4 = "h4" >> hard_space >> element_id_1_6 >> phrase       [actions.h4];
+                h5 = "h5" >> hard_space >> element_id_1_6 >> phrase       [actions.h5];
+                h6 = "h6" >> hard_space >> element_id_1_6 >> phrase       [actions.h6];
 
                 static const bool true_ = true;
                 static const bool false_ = false;
@@ -446,7 +455,8 @@
                             xinclude, include, hard_space, eol, paragraph_end,
                             template_, template_id, template_formal_arg,
                             template_body, identifier, dummy_block, import,
-                            inside_paragraph, element_id, element_id_1_5;
+                            inside_paragraph,
+                            element_id, element_id_1_5, element_id_1_6;
 
             symbols<>       paragraph_end_markups;
 
Modified: trunk/tools/quickbook/detail/actions.cpp
==============================================================================
--- trunk/tools/quickbook/detail/actions.cpp	(original)
+++ trunk/tools/quickbook/detail/actions.cpp	2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
@@ -105,8 +105,9 @@
         }
         else // version 1.3 and above
         {
-            std::string id = qbk_version_n >= 106 ?
-                detail::make_identifier(first, last) :
+            std::string id =
+                !element_id.empty() ? element_id :
+                qbk_version_n >= 106 ? detail::make_identifier(first, last) :
                 detail::make_identifier(str.begin(), str.end());
 
             std::string anchor =
@@ -132,8 +133,9 @@
         std::string str;
         phrase.swap(str);
 
-        std::string id = qbk_version_n >= 106 ?
-            detail::make_identifier(first, last) :
+        std::string id =
+            !element_id.empty() ? element_id :
+            qbk_version_n >= 106 ? detail::make_identifier(first, last) :
             detail::make_identifier(str.begin(), str.end());
 
         std::string anchor =
Modified: trunk/tools/quickbook/detail/actions.hpp
==============================================================================
--- trunk/tools/quickbook/detail/actions.hpp	(original)
+++ trunk/tools/quickbook/detail/actions.hpp	2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
@@ -116,6 +116,7 @@
         header_action(
             collector& out,
             collector& phrase,
+            std::string const& element_id,
             std::string const& library_id,
             std::string const& section_id,
             std::string const& qualified_section_id,
@@ -123,6 +124,7 @@
             std::string const& post)
         : out(out)
         , phrase(phrase)
+        , element_id(element_id)
         , library_id(library_id)
         , section_id(section_id)
         , qualified_section_id(qualified_section_id)
@@ -133,6 +135,7 @@
 
         collector& out;
         collector& phrase;
+        std::string const& element_id;
         std::string const& library_id;
         std::string const& section_id;
         std::string const& qualified_section_id;
@@ -147,12 +150,14 @@
         generic_header_action(
             collector& out,
             collector& phrase,
+            std::string const& element_id,
             std::string const& library_id,
             std::string const& section_id,
             std::string const& qualified_section_id,
             int const& section_level)
         : out(out)
         , phrase(phrase)
+        , element_id(element_id)
         , library_id(library_id)
         , section_id(section_id)
         , qualified_section_id(qualified_section_id)
@@ -162,6 +167,7 @@
 
         collector& out;
         collector& phrase;
+        std::string const& element_id;
         std::string const& library_id;
         std::string const& section_id;
         std::string const& qualified_section_id;
Modified: trunk/tools/quickbook/detail/actions_class.cpp
==============================================================================
--- trunk/tools/quickbook/detail/actions_class.cpp	(original)
+++ trunk/tools/quickbook/detail/actions_class.cpp	2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
@@ -81,13 +81,13 @@
         , inline_code(phrase, syntax_p)
         , inside_paragraph(temp_para, phrase, paragraph_pre, paragraph_post)
         , write_paragraphs(out, temp_para)
-        , h(out, phrase, doc_id, section_id, qualified_section_id, section_level)
-        , h1(out, phrase, doc_id, section_id, qualified_section_id, h1_pre, h1_post)
-        , h2(out, phrase, doc_id, section_id, qualified_section_id, h2_pre, h2_post)
-        , h3(out, phrase, doc_id, section_id, qualified_section_id, h3_pre, h3_post)
-        , h4(out, phrase, doc_id, section_id, qualified_section_id, h4_pre, h4_post)
-        , h5(out, phrase, doc_id, section_id, qualified_section_id, h5_pre, h5_post)
-        , h6(out, phrase, doc_id, section_id, qualified_section_id, h6_pre, h6_post)
+        , h(out, phrase, element_id, doc_id, section_id, qualified_section_id, section_level)
+        , h1(out, phrase, element_id, doc_id, section_id, qualified_section_id, h1_pre, h1_post)
+        , h2(out, phrase, element_id, doc_id, section_id, qualified_section_id, h2_pre, h2_post)
+        , h3(out, phrase, element_id, doc_id, section_id, qualified_section_id, h3_pre, h3_post)
+        , h4(out, phrase, element_id, doc_id, section_id, qualified_section_id, h4_pre, h4_post)
+        , h5(out, phrase, element_id, doc_id, section_id, qualified_section_id, h5_pre, h5_post)
+        , h6(out, phrase, element_id, doc_id, section_id, qualified_section_id, h6_pre, h6_post)
         , hr(out, hr_)
         , blurb(out, temp_para, blurb_pre, blurb_post)
         , blockquote(out, temp_para, blockquote_pre, blockquote_post)
Modified: trunk/tools/quickbook/doc/quickbook.qbk
==============================================================================
--- trunk/tools/quickbook/doc/quickbook.qbk	(original)
+++ trunk/tools/quickbook/doc/quickbook.qbk	2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
@@ -222,6 +222,8 @@
 [h3 Version 1.5.3 - Boost 1.45.0]
 
 * Fix command line flag for defining macros.
+* Further work on quickbook 1.6, still not stable.
+  * Allow heading to have ids, using the syntax: `[heading:id title]`.
 
 [endsect]
 
Modified: trunk/tools/quickbook/test/Jamfile.v2
==============================================================================
--- trunk/tools/quickbook/test/Jamfile.v2	(original)
+++ trunk/tools/quickbook/test/Jamfile.v2	2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
@@ -35,6 +35,7 @@
     [ quickbook-test section_1_4 ]
     [ quickbook-test section_1_5 ]
     [ quickbook-test heading ]
+    [ quickbook-test heading_1_6 ]
     [ quickbook-test identifier_1_5 ]
     [ quickbook-test identifier_1_6 ]
     [ quickbook-test para-test ]
Modified: trunk/tools/quickbook/test/heading.gold
==============================================================================
--- trunk/tools/quickbook/test/heading.gold	(original)
+++ trunk/tools/quickbook/test/heading.gold	2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
@@ -11,4 +11,18 @@
   <para>
     Testing headers without sections.
   </para>
+  <anchor id="header._not_an_id"/>
+  <bridgehead renderas="sect2">
+    <link linkend="header._not_an_id">:Not an Id</link>
+  </bridgehead>
+  <para>
+    Paragraph.
+  </para>
+  <anchor id="header._not_an_id_again"/>
+  <bridgehead renderas="sect3">
+    <link linkend="header._not_an_id_again">:Not an Id again</link>
+  </bridgehead>
+  <para>
+    Paragraph.
+  </para>
 </article>
Modified: trunk/tools/quickbook/test/heading.quickbook
==============================================================================
--- trunk/tools/quickbook/test/heading.quickbook	(original)
+++ trunk/tools/quickbook/test/heading.quickbook	2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
@@ -5,4 +5,12 @@
 
 [heading Header Test]
 
-Testing headers without sections.
\ No newline at end of file
+Testing headers without sections.
+
+[heading:Not an Id]
+
+Paragraph.
+
+[h3:Not an Id again]
+
+Paragraph.
\ No newline at end of file
Added: trunk/tools/quickbook/test/heading_1_6.gold
==============================================================================
--- (empty file)
+++ trunk/tools/quickbook/test/heading_1_6.gold	2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<article id="header" last-revision="DEBUG MODE Date: 2000/12/20 12:00:00 $" xmlns:xi="http://www.w3.org/2001/XInclude">
+  <title>Header</title>
+  <articleinfo>
+  </articleinfo>
+  <anchor id="header.header_test"/>
+  <bridgehead renderas="sect2">
+    <link linkend="header.header_test">Header Test</link>
+  </bridgehead>
+  <para>
+    Paragraph.
+  </para>
+  <anchor id="header.heading_id"/>
+  <bridgehead renderas="sect2">
+    <link linkend="header.heading_id"> Heading with an id</link>
+  </bridgehead>
+  <para>
+    Paragraph.
+  </para>
+  <anchor id="header.heading_id2"/>
+  <bridgehead renderas="sect3">
+    <link linkend="header.heading_id2"> Heading with an id</link>
+  </bridgehead>
+  <para>
+    Paragraph.
+  </para>
+</article>
Added: trunk/tools/quickbook/test/heading_1_6.quickbook
==============================================================================
--- (empty file)
+++ trunk/tools/quickbook/test/heading_1_6.quickbook	2010-08-15 12:43:40 EDT (Sun, 15 Aug 2010)
@@ -0,0 +1,16 @@
+[article Header
+    [quickbook 1.6]
+    [id header]
+]
+
+[heading Header Test]
+
+Paragraph.
+
+[heading:heading_id Heading with an id]
+
+Paragraph.
+
+[h3:heading_id2 Heading with an id]
+
+Paragraph.