The branch, master has been updated via a93ffb1a More non-breaking space/dash improvements from e08f6003 Use `-⁠` instead of `‑`
https://git.samba.org/?p=rsync.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit a93ffb1ae972cb7be5d3788b460fce9a24b060d8 Author: Wayne Davison <wa...@opencoder.net> Date: Thu Jun 18 23:51:15 2020 -0700 More non-breaking space/dash improvements - In html, use css more for non-breakability. - In nroff, mark more dashes as non-breaking in code->bold sections, and get rid of backslashed dashes in preformatted blocks. ----------------------------------------------------------------------- Summary of changes: md2man | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) Changeset truncated at 500 lines: diff --git a/md2man b/md2man index 1b84162d..22965019 100755 --- a/md2man +++ b/md2man @@ -35,6 +35,7 @@ body, b, strong, u { code { font-family: 'Roboto Mono', monospace; font-weight: bold; + white-space: pre; } pre code { display: block; @@ -64,7 +65,9 @@ MAN_END = """\ NORM_FONT = ('\1', r"\fP") BOLD_FONT = ('\2', r"\fB") -ULIN_FONT = ('\3', r"\fI") +UNDR_FONT = ('\3', r"\fI") +NBR_DASH = ('\4', r"\-") +NBR_SPACE = ('\xa0', r"\ ") md_parser = None @@ -212,7 +215,7 @@ class HtmlToManPage(HTMLParser): st.txt += BOLD_FONT[0] elif tag == 'em' or tag == 'i': tag = 'u' # Change it into underline to be more like the man page - st.txt += ULIN_FONT[0] + st.txt += UNDR_FONT[0] elif tag == 'ol': start = 1 for var, val in attrs_list: @@ -305,15 +308,21 @@ class HtmlToManPage(HTMLParser): st.at_first_tag_in_dd = True - def handle_data(self, data): + def handle_data(self, txt): st = self.state if args.debug: - self.output_debug('DATA', (data,)) - if st.in_code: - data = re.sub(r'\s', '\xa0', data) # nbsp in non-pre code - data = re.sub(r'\s--\s', '\xa0-- ', data) - st.html_out.append(htmlify(data)) - st.txt += data + self.output_debug('DATA', (txt,)) + if st.in_pre: + html = htmlify(txt) + else: + txt = re.sub(r'\s--(\s)', NBR_SPACE[0] + r'--\1', txt).replace('--', NBR_DASH[0]*2) + txt = re.sub(r'(^|\W)-', r'\1' + NBR_DASH[0], txt) + html = htmlify(txt) + if st.in_code: + txt = re.sub(r'\s', NBR_SPACE[0], txt) + html = html.replace(NBR_DASH[0], '-').replace(NBR_SPACE[0], ' ') # <code> is non-breaking in CSS + st.html_out.append(html.replace(NBR_SPACE[0], ' ').replace(NBR_DASH[0], '-⁠')) + st.txt += txt def output_debug(self, event, extra): @@ -331,17 +340,15 @@ class HtmlToManPage(HTMLParser): def manify(txt): return re.sub(r"^(['.])", r'\&\1', txt.replace('\\', '\\\\') - .replace("\xa0", r'\ ') # non-breaking space - .replace('--', r'\-\-') # non-breaking double dash + .replace(NBR_SPACE[0], NBR_SPACE[1]) + .replace(NBR_DASH[0], NBR_DASH[1]) .replace(NORM_FONT[0], NORM_FONT[1]) .replace(BOLD_FONT[0], BOLD_FONT[1]) - .replace(ULIN_FONT[0], ULIN_FONT[1]), flags=re.M) + .replace(UNDR_FONT[0], UNDR_FONT[1]), flags=re.M) def htmlify(txt): - return re.sub(r'(^|\W)-', r'\1-⁠', - txt.replace('&', '&').replace('<', '<').replace('>', '>').replace('"', '"') - .replace("\xa0", ' ').replace('--', '\4\4')).replace('\4', '-⁠') + return txt.replace('&', '&').replace('<', '<').replace('>', '>').replace('"', '"') def warn(*msg): -- The rsync repository. _______________________________________________ rsync-cvs mailing list rsync-cvs@lists.samba.org https://lists.samba.org/mailman/listinfo/rsync-cvs