add section numbers in search + fixes
authorMarcin Koziej <marcin.koziej@nowoczesnapolska.org.pl>
Fri, 27 Jan 2012 15:58:59 +0000 (16:58 +0100)
committerMarcin Koziej <marcin.koziej@nowoczesnapolska.org.pl>
Fri, 27 Jan 2012 15:58:59 +0000 (16:58 +0100)
apps/search/index.py
lib/librarian
wolnelektury/templates/catalogue/book_searched.html

index 9617077..0f69d07 100644 (file)
@@ -276,7 +276,7 @@ class Index(BaseIndex):
 
     footnote_tags = ['pa', 'pt', 'pr', 'pe']
 
 
     footnote_tags = ['pa', 'pt', 'pr', 'pe']
 
-    skip_header_tags = ['autor_utworu', 'nazwa_utworu', 'dzielo_nadrzedne']
+    skip_header_tags = ['autor_utworu', 'nazwa_utworu', 'dzielo_nadrzedne', '{http://www.w3.org/1999/02/22-rdf-syntax-ns#}RDF']
 
     published_date_re = re.compile("([0-9]+)[\]. ]*$")
 
 
     published_date_re = re.compile("([0-9]+)[\]. ]*$")
 
@@ -426,9 +426,8 @@ class Index(BaseIndex):
 
         fragments = {}
         snippets = Snippets(book.id).open('w')
 
         fragments = {}
         snippets = Snippets(book.id).open('w')
-        position = 0
         try:
         try:
-            for header in list(master):
+            for header, position in zip(list(master), range(len(master))):
 
                 if header.tag in self.skip_header_tags:
                     continue
 
                 if header.tag in self.skip_header_tags:
                     continue
@@ -441,15 +440,15 @@ class Index(BaseIndex):
 
                 for start, end in walker(header, ignore_tags=self.ignore_content_tags):
                     # handle footnotes
 
                 for start, end in walker(header, ignore_tags=self.ignore_content_tags):
                     # handle footnotes
-                    if start is not None and start.tag in self.footnote_tags:
-                        footnote = ' '.join(start.itertext())
-                    elif end is not None and footnote is not None and end.tag in self.footnote_tags:
-                        doc = add_part(snippets, header_index=position, header_type=header.tag,
-                                       content=footnote)
+                    if start is not None and start.tag in self.footnote_tags:
+                        footnote = ' '.join(start.itertext())
+                    elif end is not None and footnote is not None and end.tag in self.footnote_tags:
+                        doc = add_part(snippets, header_index=position, header_type=header.tag,
+                                       content=footnote)
 
 
-                        self.index.addDocument(doc)
+                        self.index.addDocument(doc)
 
 
-                        footnote = None
+                        footnote = None
 
                     # handle fragments and themes.
                     if start is not None and start.tag == 'begin':
 
                     # handle fragments and themes.
                     if start is not None and start.tag == 'begin':
@@ -496,7 +495,6 @@ class Index(BaseIndex):
                                content=fix_format(content))
 
                 self.index.addDocument(doc)
                                content=fix_format(content))
 
                 self.index.addDocument(doc)
-                position += 1
 
         finally:
             snippets.close()
 
         finally:
             snippets.close()
index b24b166..30d14a3 160000 (submodule)
@@ -1 +1 @@
-Subproject commit b24b166cc4de6ba7e9b1559717bb5ff6e27bdacd
+Subproject commit 30d14a324bb0e8a99c54cbceea01476e59748b33
index 935f332..8dfa053 100644 (file)
@@ -8,7 +8,7 @@
 <div class="snippets">
   {% for hit in hits %}
   {% if hit.snippets %}
 <div class="snippets">
   {% for hit in hits %}
   {% if hit.snippets %}
-  <div class="snippet-text"><a href="{% url book_text book.slug %}">{{hit.snippets.0|safe}}</a></div>
+  <div class="snippet-text"><a href="{% url book_text book.slug %}#sect{{hit.section_number}}">{{hit.snippets.0|safe}}</a></div>
   {% else %}
   {% if hit.fragment %}
   <div class="snippet-text">
   {% else %}
   {% if hit.fragment %}
   <div class="snippet-text">