The branch, master has been updated
       via  9ba6ce1b More release improvements.
       via  ca9e2477 Mention renamed .md files.
      from  f27a630e Don't use c++ comments.

https://git.samba.org/?p=rsync.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 9ba6ce1b67bd6d617c7fb59924a1a4c3c4c79069
Author: Wayne Davison <wa...@opencoder.net>
Date:   Sat Jun 13 21:10:13 2020 -0700

    More release improvements.

commit ca9e2477627ac5b9c6b6f52a03eb00d277305efb
Author: Wayne Davison <wa...@opencoder.net>
Date:   Sat Jun 13 20:42:33 2020 -0700

    Mention renamed .md files.

-----------------------------------------------------------------------

Summary of changes:
 NEWS.md                 |  3 ++
 packaging/md2html       | 87 +++++++++++++++++++++++++++++++++++++++++++++++++
 packaging/release-rsync | 17 ++++++----
 3 files changed, 101 insertions(+), 6 deletions(-)
 create mode 100755 packaging/md2html


Changeset truncated at 500 lines:

diff --git a/NEWS.md b/NEWS.md
index 18a28545..95fe78b6 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -143,6 +143,9 @@ Protocol: 31 (unchanged)
 
  - Add installed man page: /usr/man/man1/rsync-ssl.1
 
+ - Some "readme" files have changed names to be .md files, such as: README.md,
+   INSTALL.md, NEWS.md, & OLDNEWS.md.
+
  - The rsync-ssl script wants to run either openssl or stunnel4, so consider
    adding a dependency for openssl (though it's probably fine to just let it
    complain about being unable to find either program and let the user decide
diff --git a/packaging/md2html b/packaging/md2html
new file mode 100755
index 00000000..f0f61cdc
--- /dev/null
+++ b/packaging/md2html
@@ -0,0 +1,87 @@
+#!/usr/bin/python3
+
+# Copyright (C) 2020 Wayne Davison
+#
+# This program is freely redistributable.
+
+import re, argparse
+
+HTML_START = """\
+<html><head>
+<title>%s</title>
+<link 
href="https://fonts.googleapis.com/css2?family=Roboto&family=Roboto+Mono&display=swap";
 rel="stylesheet">
+<style>
+body {
+  max-width: 50em;
+  margin: auto;
+}
+body, b, strong, u {
+  font-family: 'Roboto', sans-serif;
+}
+code {
+  font-family: 'Roboto Mono', monospace;
+  font-weight: bold;
+}
+pre code {
+  display: block;
+  font-weight: normal;
+}
+blockquote pre code {
+  background: #f1f1f1;
+}
+dd p:first-of-type {
+  margin-block-start: 0em;
+}
+</style>
+</head><body>
+"""
+
+HTML_END = """\
+</body></html>
+"""
+
+md_parser = None
+
+def main():
+    for mdfn in args.mdfiles:
+        title = re.sub(r'.*/', '', mdfn).replace('.md', '')
+        htfn = mdfn.replace('.md', '.html')
+
+        print("Parsing", mdfn, '->', htfn)
+
+        with open(mdfn, 'r', encoding='utf-8') as fh:
+            txt = fh.read()
+
+        html = md_parser(txt)
+
+        with open(htfn, 'w', encoding='utf-8') as fh:
+            fh.write(HTML_START % title)
+            fh.write(html)
+            fh.write(HTML_END)
+
+
+def html_via_cmarkgfm(txt):
+    return cmarkgfm.markdown_to_html(txt)
+
+
+def html_via_commonmark(txt):
+    return commonmark.HtmlRenderer().render(commonmark.Parser().parse(txt))
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(description='Output html for md pages.', 
add_help=False)
+    parser.add_argument("--help", "-h", action="help", help="Output this help 
message and exit.")
+    parser.add_argument("mdfiles", nargs='+', help="The .md files to turn into 
.html files.")
+    args = parser.parse_args()
+
+    try:
+        import cmarkgfm
+        md_parser = html_via_cmarkgfm
+    except:
+        try:
+            import commonmark
+            md_parser = html_via_commonmark
+        except:
+            die("Failed to find cmarkgfm or commonmark for python3.")
+
+    main()
diff --git a/packaging/release-rsync b/packaging/release-rsync
index ee771bd0..a4c193c6 100755
--- a/packaging/release-rsync
+++ b/packaging/release-rsync
@@ -329,13 +329,18 @@ About to:
     shutil.rmtree(rsync_ver)
 
     print(f"Updating the other files in {dest} ...")
-    cmd_chk('rsync -a README.md NEWS.md OLDNEWS.md TODO'.split() + [dest])
-    if os.path.lexists(news_file):
-        os.unlink(news_file)
-    os.link(f"{dest}/NEWS.md", news_file)
-    cmd_chk(f"git log --name-status | gzip -9 >{dest}/ChangeLog.gz")
+    md_files = 'README.md NEWS.md OLDNEWS.md'.split()
+    html_files = [ fn for fn in gen_files if fn.endswith('.html') ]
+    cmd_chk(['rsync', '-a', *md_files, *html_files, dest])
+    cmd_chk(["packaging/md2html"] + [ dest +'/'+ fn for fn in md_files ])
+
+    for topfn, verfn in (('NEWS.md', news_file), ('NEWS.html', 
news_file.replace('.md', '.html'))):
+        topfn = dest + '/' + topfn
+        if os.path.lexists(verfn):
+            os.unlink(verfn)
+        os.link(topfn, verfn)
 
-    cmd_chk(['rsync', '-a', *glob.glob('*.[1-9].html'), os.path.join(dest, 
html_fn)])
+    cmd_chk(f"git log --name-status | gzip -9 >{dest}/ChangeLog.gz")
 
     for fn in (srctar_file, pattar_file, diff_file):
         asc_fn = fn + '.asc'


-- 
The rsync repository.

_______________________________________________
rsync-cvs mailing list
rsync-cvs@lists.samba.org
https://lists.samba.org/mailman/listinfo/rsync-cvs

Reply via email to