def test_node_url(self): """Node URL API.""" self.assertTrue(notebook.is_node_url( "nbk:///0841d4cc-2605-4fbb-9b3a-db5d4aeed7a6")) self.assertFalse( notebook.is_node_url("nbk://bad_url")) self.assertFalse(notebook.is_node_url( "http:///0841d4cc-2605-4fbb-9b3a-db5d4aeed7a6")) host, nodeid = notebook.parse_node_url( "nbk:///0841d4cc-2605-4fbb-9b3a-db5d4aeed7a6") self.assertEqual(host, "") self.assertEqual(nodeid, "0841d4cc-2605-4fbb-9b3a-db5d4aeed7a6") host, nodeid = notebook.parse_node_url( "nbk://host/0841d4cc-2605-4fbb-9b3a-db5d4aeed7a6") self.assertEqual(host, "host") self.assertEqual(nodeid, "0841d4cc-2605-4fbb-9b3a-db5d4aeed7a6")
def walk(node): if node.nodeType == node.ELEMENT_NODE and node.tagName == "a": url = node.getAttribute("href") if notebooklib.is_node_url(url): host, nodeid = notebooklib.parse_node_url(url) url2 = nodeid2html_link(notebook, path, nodeid) if url2 != "": node.setAttribute("href", url2) # recurse for child in node.childNodes: walk(child)
def _on_visit_url(self, textview, url): """Callback for textview visiting a URL""" if is_node_url(url): host, nodeid = parse_node_url(url) node = self._notebook.get_node_by_id(nodeid) if node: self.emit("visit-node", node) else: try: self._app.open_webpage(url) except KeepNoteError, e: self.emit("error", e.msg, e)