Have page builder allow you to inject custom HTML. Make the generic
authorScott Gasch <[email protected]>
Wed, 8 Jul 2020 01:56:34 +0000 (18:56 -0700)
committerScott Gasch <[email protected]>
Wed, 8 Jul 2020 01:56:34 +0000 (18:56 -0700)
news renderer use this to turn off annoying linky titles.

generic_news_rss_renderer.py
page_builder.py

index 21f9afea3e630003f60f5e6f105d71b7548a19e6..4db466957456095148d1793a772e0069b02ae32b 100644 (file)
@@ -97,6 +97,24 @@ class generic_news_rss_renderer(renderer.debuggable_abstaining_renderer):
             return False
         for msg in subset:
             headlines.add_item(msg)
+        headlines.set_custom_html("""
+<STYLE>
+a:link {
+  color: maroon;
+  text-decoration: none;
+  font-weight: bold;
+}
+a:visited {
+  color: maroon;
+  text-decoration: none;
+  font-weight: bold;
+}
+a:active {
+  color: maroon;
+  text-decoration: none;
+  font-weight: bold;
+}
+</STYLE>""")
         f = file_writer.file_writer('%s_4_none.html' % (
             self.get_headlines_page_prefix()))
         headlines.render_html(f)
@@ -104,6 +122,24 @@ class generic_news_rss_renderer(renderer.debuggable_abstaining_renderer):
 
         details = page_builder.page_builder()
         details.set_layout(page_builder.page_builder.LAYOUT_ONE_ITEM)
+        details.set_custom_html("""
+<STYLE>
+a:link {
+  color: maroon;
+  text-decoration: none;
+  font-weight: bold;
+}
+a:visited {
+  color: maroon;
+  text-decoration: none;
+  font-weight: bold;
+}
+a:active {
+  color: maroon;
+  text-decoration: none;
+  font-weight: bold;
+}
+</STYLE>""")
         details.set_title("%s" % self.page_title)
         subset = self.details.subset(1)
         if subset is None:
index 65f5b93e354fc138d9dcbf390feaa2e0d1801fce..4aa72fe85f9851f9d221ce6be4fb73971834f952 100644 (file)
@@ -14,6 +14,7 @@ class page_builder(object):
         self.layout = page_builder.LAYOUT_AUTO
         self.items = []
         self.debug_info = None
+        self.custom_html = None
 
     def set_layout(self, layout):
         self.layout = layout
@@ -43,6 +44,10 @@ class page_builder(object):
         else:
             self.layout = page_builder.LAYOUT_MANY_ITEMS
 
+    def __render_custom_html(self, f):
+        if self.custom_html is not None:
+            f.write(self.custom_html)
+
     def __render_header(self, f):
         if self.title is not None:
             f.write("<H1>%s</H1>\n" % self.title)
@@ -56,7 +61,7 @@ class page_builder(object):
     def render_html(self, f):
         if self.layout == page_builder.LAYOUT_AUTO or self.layout is None:
             self.__pick_layout()
-
+        self.__render_custom_html(f)
         self.__render_header(f)
 
         items_per_row = None
@@ -86,8 +91,10 @@ class page_builder(object):
             count += 1
             if count % items_per_row == 0:
                 f.write("</TR>\n<TR>\n")
-
         self.__render_footer(f)
 
+    def set_custom_html(self, html):
+        self.custom_html = html
+
 #x = page_builder()
 #x.set_title("title").add_item("item1").add_item("item2").add_item("item3").render_html(sys.stdout)