title: How to stylize items in a ListBox (urwid)?
body: <p>I'm trying to make a ListBox out of text items where the first line of every item is a bold, white title (with the first couple words colored green) and the next two lines are grey body text.</p>
  
  <p>Here's what I currently have:</p>
  
  <pre><code>class SelectableText(urwid.Text):
      def selectable(self):
          return True
  
      def keypress(self, size, key):
          return key
  
  palette = [('reveal focus', 'black', 'dark cyan', 'standout')]
  
  items = ["This part should be green and is the bold title!\nThese are the two lines of grey body text... Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc facilisis at mi eu efficitur.", "This part should be green and is the bold title!\nThese are the two lines of grey body text... Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc facilisis at mi eu efficitur."]
  
  item_list  = list(map(lambda item: urwid.AttrMap(SelectableText(item), None, "reveal focus"), items))
  item_list_walker= urwid.SimpleListWalker(item_list)
  listbox = urwid.ListBox(item_list_walker)
  
  layout = urwid.Filler(listbox, valign="top", top=1, bottom=1)
  main_loop = urwid.MainLoop(layout, palette)
  main_loop.run()
  </code></pre>
  
  <p>My question is how do I add display attributes to the items without changing the behavior of the "reveal focus" attribute? i.e. The item text should still turn black with a dark cyan background when it's selected but be stylized differently when it's not selected.</p>