@@ -23,24 +23,23 @@ class Document(ElementProxy):
2323 Use :func:`docx.Document` to open or create a document.
2424 """
2525
26- __slots__ = ('_part' , '__body' , '_Bookmarks' )
26+ __slots__ = ('_part' , '__body' )
2727
2828 def __init__ (self , element , part ):
2929 super (Document , self ).__init__ (element )
3030 self ._part = part
3131 self .__body = None
32- self ._Bookmarks = Bookmarks (self ._element .body )
3332
3433 def start_bookmark (self , name ):
3534 bookmarkstart = self ._body .add_bookmarkStart (name )
3635 return Bookmark (bookmarkstart )
3736
38- def end_bookmark (self ):
39- bookmarkend = self ._body .add_bookmarkEnd ()
37+ def end_bookmark (self , name = None ):
38+ bookmarkend = self ._body .add_bookmarkEnd (name )
4039 return Bookmark (bookmarkend )
4140
4241 def bookmarks (self ):
43- return self . _Bookmarks # (self._element.body)
42+ return Bookmarks (self ._element .body )
4443
4544 def add_heading (self , text = '' , level = 1 ):
4645 """
@@ -219,7 +218,6 @@ class _Body(BlockItemContainer):
219218 def __init__ (self , body_elm , parent ):
220219 super (_Body , self ).__init__ (body_elm , parent )
221220 self ._body = body_elm
222- self ._parent = parent
223221
224222 def clear_content (self ):
225223 """
@@ -233,11 +231,15 @@ def clear_content(self):
233231 def add_bookmarkStart (self , name ):
234232 bookmarkStart = self ._body ._add_bookmarkStart ()
235233 bookmarkStart .name = name
236- bookmarkStart .bmrk_id = self . _parent . _Bookmarks ._next_id
234+ bookmarkStart .bmrk_id = bookmarkStart ._next_id
237235 return Bookmark (bookmarkStart )
238236
239- def add_bookmarkEnd (self ):
240- open_id = self . _parent . _Bookmarks . _unclosed_bookmark
237+ def add_bookmarkEnd (self , name = None ):
238+
241239 bookmarkEnd = self ._body ._add_bookmarkEnd ()
242- bookmarkEnd .bmrk_id = open_id
240+ if name is not None :
241+ bookmarkStart_id = bookmarkEnd .match_bookmarkstart (name )
242+ else :
243+ bookmarkStart_id = bookmarkEnd ._next_id
244+ bookmarkEnd .bmrk_id = bookmarkStart_id
243245 return Bookmark (bookmarkEnd )
0 commit comments