[PATCH 2/2] docs: build: Use proper path to file in 'contribute' link

Peter Krempa pkrempa at redhat.com
Mon Aug 3 14:46:30 UTC 2020


NEWS.xsl is based in the root of the repository and 'hvsupport.html'
doesn't have a backing file which can be edited since it's fully
generated. Our 'contribute -> edit this page' link on the bottom of the
page is wrong in those cases.

Fix it by adding the contribute section only when there's a source and
base the 'source' of a html file in the root of the repository.

Along with that we need to modify the scripts/meson-html-gen.py script
to accept optional 'pagesrc' and the XSL template to skip the
'contribute' section when we don't have a source.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 docs/meson.build          |  9 ++++-----
 docs/page.xsl             | 14 ++++++++------
 scripts/meson-html-gen.py |  2 +-
 3 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/docs/meson.build b/docs/meson.build
index e81251f29d..aaa3040598 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -197,7 +197,7 @@ docs_rst2html_gen = generator(
 #   each entry is a dictionary with following items:
 #   name - base file name (required)
 #   file - generated file (required)
-# source - source filename (required)
+# source - source filename relative to repository root (optional, if there is no source)
 docs_html_in_gen = []

 foreach name : docs_html_in_files
@@ -205,7 +205,7 @@ foreach name : docs_html_in_files
   docs_html_in_gen += {
     'name': name,
     'file': html_in_file,
-    'source': html_in_file,
+    'source': 'docs' / html_in_file,
   }
 endforeach

@@ -214,7 +214,7 @@ foreach name : docs_rst_files
   docs_html_in_gen += {
     'name': name,
     'file': docs_rst2html_gen.process(rst_file),
-    'source': rst_file,
+    'source': 'docs' / rst_file,
   }
 endforeach

@@ -242,7 +242,6 @@ hvsupport_html_in = custom_target(
 docs_html_in_gen += {
   'name': 'hvsupport',
   'file': hvsupport_html_in,
-  'source': 'hvsupport.html.in',
 }

 news_html_in = docs_rst2html_gen.process(meson.source_root() / 'NEWS.rst')
@@ -270,7 +269,7 @@ foreach data : docs_html_in_gen
       site_xsl,
       '@INPUT@',
       '@OUTPUT@',
-      data['source'],
+      data.get('source', []),
     ],
     depends: [ aclperms_gen ],
     depend_files: [ page_xsl ],
diff --git a/docs/page.xsl b/docs/page.xsl
index 6923871400..bdd57ba2e0 100644
--- a/docs/page.xsl
+++ b/docs/page.xsl
@@ -166,12 +166,14 @@
               <li><a href="http://serverfault.com/questions/tagged/libvirt">serverfault</a></li>
             </ul>
           </div>
-          <div id="contribute">
-            <h3>Contribute</h3>
-            <ul>
-              <li><a href="https://gitlab.com/libvirt/libvirt/-/blob/master/docs/{$pagesrc}">edit this page</a></li>
-            </ul>
-          </div>
+          <xsl:if test="$pagesrc != ''">
+            <div id="contribute">
+              <h3>Contribute</h3>
+              <ul>
+                <li><a href="https://gitlab.com/libvirt/libvirt/-/blob/master/{$pagesrc}">edit this page</a></li>
+              </ul>
+            </div>
+          </xsl:if>
           <div id="conduct">
             Participants in the libvirt project agree to abide by <a href="{$href_base}governance.html#codeofconduct">the project code of conduct</a>
           </div>
diff --git a/scripts/meson-html-gen.py b/scripts/meson-html-gen.py
index 08041f14ec..dbf238de54 100755
--- a/scripts/meson-html-gen.py
+++ b/scripts/meson-html-gen.py
@@ -12,7 +12,7 @@ parser.add_argument("timestamp", type=str, help="docs timestamp")
 parser.add_argument("style", type=str, help="XSL stile file")
 parser.add_argument("infile", type=str, help="path to source HTML file")
 parser.add_argument("htmlfile", type=str, help="path to generated HTML file")
-parser.add_argument("pagesrc", type=str, help="path to source file used for edit this page")
+parser.add_argument("pagesrc", type=str, default="", nargs='?', help="(optional) path to source file used for edit this page")
 args = parser.parse_args()

 name = os.path.basename(args.htmlfile).replace('.html', '')
-- 
2.26.2




More information about the libvir-list mailing list