##// END OF EJS Templates
help: add topic rewriting hooks...
Patrick Mezard -
r12820:0edc0aa7 stable
parent child Browse files
Show More
@@ -79,7 +79,11 b' def loaddoc(topic):'
79 79 break
80 80
81 81 path = os.path.join(docdir, topic + ".txt")
82 return gettext(open(path).read())
82 doc = gettext(open(path).read())
83 for rewriter in helphooks.get(topic, []):
84 doc = rewriter(topic, doc)
85 return doc
86
83 87 return loader
84 88
85 89 helptable = [
@@ -102,3 +106,11 b' helptable = ['
102 106 (["hgweb"], _("Configuring hgweb"), loaddoc('hgweb')),
103 107 (["glossary"], _("Glossary"), loaddoc('glossary')),
104 108 ]
109
110 # Map topics to lists of callable taking the current topic help and
111 # returning the updated version
112 helphooks = {
113 }
114
115 def addtopichook(topic, rewriter):
116 helphooks.setdefault(topic, []).append(rewriter)
@@ -756,3 +756,30 b' Test a help topic'
756 756 The reserved name "." indicates the working directory parent. If no
757 757 working directory is checked out, it is equivalent to null. If an
758 758 uncommitted merge is in progress, "." is the revision of the first parent.
759
760 Test help hooks
761
762 $ cat > helphook1.py <<EOF
763 > from mercurial import help
764 >
765 > def rewrite(topic, doc):
766 > return doc + '\nhelphook1\n'
767 >
768 > def extsetup(ui):
769 > help.addtopichook('revsets', rewrite)
770 > EOF
771 $ cat > helphook2.py <<EOF
772 > from mercurial import help
773 >
774 > def rewrite(topic, doc):
775 > return doc + '\nhelphook2\n'
776 >
777 > def extsetup(ui):
778 > help.addtopichook('revsets', rewrite)
779 > EOF
780 $ echo '[extensions]' >> $HGRCPATH
781 $ echo "helphook1 = `pwd`/helphook1.py" >> $HGRCPATH
782 $ echo "helphook2 = `pwd`/helphook2.py" >> $HGRCPATH
783 $ hg help revsets | grep helphook
784 helphook1
785 helphook2
General Comments 0
You need to be logged in to leave comments. Login now