##// END OF EJS Templates
help: move rst formatting of help documents into help.py...
Augie Fackler -
r31059:2a0c8e36 default
parent child Browse files
Show More
@@ -39,7 +39,6 b' from . import ('
39 39 hg,
40 40 lock as lockmod,
41 41 merge as mergemod,
42 minirst,
43 42 obsolete,
44 43 patch,
45 44 phases,
@@ -2721,10 +2720,6 b' def help_(ui, name=None, **opts):'
2721 2720
2722 2721 Returns 0 if successful.
2723 2722 """
2724 textwidth = ui.configint('ui', 'textwidth', 78)
2725 termwidth = ui.termwidth() - 2
2726 if textwidth <= 0 or termwidth < textwidth:
2727 textwidth = termwidth
2728 2723
2729 2724 keep = opts.get('system') or []
2730 2725 if len(keep) == 0:
@@ -2740,37 +2735,7 b' def help_(ui, name=None, **opts):'
2740 2735 if ui.verbose:
2741 2736 keep.append('verbose')
2742 2737
2743 fullname = name
2744 section = None
2745 subtopic = None
2746 if name and '.' in name:
2747 name, remaining = name.split('.', 1)
2748 remaining = encoding.lower(remaining)
2749 if '.' in remaining:
2750 subtopic, section = remaining.split('.', 1)
2751 else:
2752 if name in help.subtopics:
2753 subtopic = remaining
2754 else:
2755 section = remaining
2756
2757 text = help.help_(ui, name, subtopic=subtopic, **opts)
2758
2759 formatted, pruned = minirst.format(text, textwidth, keep=keep,
2760 section=section)
2761
2762 # We could have been given a weird ".foo" section without a name
2763 # to look for, or we could have simply failed to found "foo.bar"
2764 # because bar isn't a section of foo
2765 if section and not (formatted and name):
2766 raise error.Abort(_("help section not found: %s") % fullname)
2767
2768 if 'verbose' in pruned:
2769 keep.append('omitted')
2770 else:
2771 keep.append('notomitted')
2772 formatted, pruned = minirst.format(text, textwidth, keep=keep,
2773 section=section)
2738 formatted = help.formattedhelp(ui, name, keep=keep, **opts)
2774 2739 ui.pager('help')
2775 2740 ui.write(formatted)
2776 2741
@@ -605,3 +605,47 b' def help_(ui, name, unknowncmd=False, fu'
605 605 rst.extend(helplist(None, **opts))
606 606
607 607 return ''.join(rst)
608
609 def formattedhelp(ui, name, keep=None, unknowncmd=False, full=True, **opts):
610 """get help for a given topic (as a dotted name) as rendered rst
611
612 Either returns the rendered help text or raises an exception.
613 """
614 if keep is None:
615 keep = []
616 fullname = name
617 section = None
618 subtopic = None
619 if name and '.' in name:
620 name, remaining = name.split('.', 1)
621 remaining = encoding.lower(remaining)
622 if '.' in remaining:
623 subtopic, section = remaining.split('.', 1)
624 else:
625 if name in subtopics:
626 subtopic = remaining
627 else:
628 section = remaining
629 textwidth = ui.configint('ui', 'textwidth', 78)
630 termwidth = ui.termwidth() - 2
631 if textwidth <= 0 or termwidth < textwidth:
632 textwidth = termwidth
633 text = help_(ui, name,
634 subtopic=subtopic, unknowncmd=unknowncmd, full=full, **opts)
635
636 formatted, pruned = minirst.format(text, textwidth, keep=keep,
637 section=section)
638
639 # We could have been given a weird ".foo" section without a name
640 # to look for, or we could have simply failed to found "foo.bar"
641 # because bar isn't a section of foo
642 if section and not (formatted and name):
643 raise error.Abort(_("help section not found: %s") % fullname)
644
645 if 'verbose' in pruned:
646 keep.append('omitted')
647 else:
648 keep.append('notomitted')
649 formatted, pruned = minirst.format(text, textwidth, keep=keep,
650 section=section)
651 return formatted
General Comments 0
You need to be logged in to leave comments. Login now