docs: def keyword_hookup(self, noteId, keywords):
          '''
          Unhook existing cross-linking entries.
          '''
          try:
              self.cur.execute("DELETE FROM notekeyword WHERE noteid=?", [noteId])
          except:
              self.error("ERROR: cannot unhook previous keywords")
          # Now, hook up new the entries, one by one.
          for keyword in keywords:
              keyword = keyword.decode('utf-8')
              self.fyi(" inserting keyword:", keyword)
              # Make sure the keyword table contains the word in question.
              keywordId = self.con.execute("SELECT keywordId FROM keyword WHERE keyword = ?;", [keyword]).fetchone()
              try:
                  if keywordId:
                      self.fyi("  (existing keyword with id: %s)" % keywordId)
                      keywordId = keywordId[0]
                  else:
                      self.fyi("  (new keyword)")
                      self.cur.execute("INSERT INTO keyword(keyword) VALUES (?);", [keyword])
                      keywordId = self.cur.lastrowid
                  # Finally, do the actual hookup for this word.
                  self.con.execute("INSERT INTO notekeyword(noteId, keywordID) VALUES(?, ?)", [noteId, keywordId])
              except:
                  self.error("error hooking up keyword '%s'" % keyword)
          self.con.commit()