diff --git a/ChangeLog b/ChangeLog index 083c131b9..fef862e46 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2014-11-29 Werner Lemberg + + [docmaker] Use field values as HTML link targets where possible. + + * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url): + Accept second, optional argument to specify a name. + (HtmlFormatter::html_source_quote): Link to field ID if possible. + (HtmlFormatter::print_html_field_list): Emit `id' attribute. + 2014-11-29 Werner Lemberg [docmaker] Allow empty lines in `' blocks. diff --git a/src/tools/docmaker/tohtml.py b/src/tools/docmaker/tohtml.py index aa1a7a97d..e570034b1 100644 --- a/src/tools/docmaker/tohtml.py +++ b/src/tools/docmaker/tohtml.py @@ -306,8 +306,10 @@ class HtmlFormatter( Formatter ): def make_section_url( self, section ): return self.file_prefix + section.name + ".html" - def make_block_url( self, block ): - return self.make_section_url( block.section ) + "#" + block.name + def make_block_url( self, block, name = None ): + if name == None: + name = block.name + return self.make_section_url( block.section ) + "#" + name def make_html_word( self, word ): """Analyze a simple word to detect cross-references and markup.""" @@ -412,8 +414,18 @@ class HtmlFormatter( Formatter ): elif self.identifiers.has_key( name ): # this is a known identifier block = self.identifiers[name] + id = block.name + + # link to a field ID if possible + for markup in block.markups: + if markup.tag == 'values': + for field in markup.fields: + if field.name: + id = name + result = ( result + prefix - + '' + name + '' ) else: result = result + html_quote( line[:length] ) @@ -428,7 +440,7 @@ class HtmlFormatter( Formatter ): def print_html_field_list( self, fields ): print '' for field in fields: - print ( '
' + print ( '
' + field.name + '' ) self.print_html_items( field.items )