public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Christoph Heiss <c.heiss@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [RFC PATCH docs 08/13] scan-adoc-refs: enable building pages from proxmox-docs-common/ subdir
Date: Fri, 19 Apr 2024 11:05:14 +0200	[thread overview]
Message-ID: <20240419090519.291775-9-c.heiss@proxmox.com> (raw)
In-Reply-To: <20240419090519.291775-1-c.heiss@proxmox.com>

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
---
 Makefile                   |  6 ++++--
 asciidoc/asciidoc-pve.conf |  2 ++
 pve-doc-generator.mk.in    |  6 ++++++
 scan-adoc-refs             | 25 ++++++++++++++++---------
 4 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/Makefile b/Makefile
index 801a2a3..5b14e3d 100644
--- a/Makefile
+++ b/Makefile
@@ -26,9 +26,11 @@ all: index.html
 verify-images:
 	for i in ./images/screenshot/*.png; do ./png-verify.pl $$i; done
 
-ADOC_SOURCES_GUESS=$(filter-out %-synopsis.adoc %-opts.adoc %-table.adoc, $(wildcard *.adoc))
+ADOC_WILDCARD_SOURCES := *.adoc proxmox-docs-common/*.adoc proxmox-docs-common/partials/*.adoc
+ADOC_SOURCES_GUESS=$(filter-out %-synopsis.adoc %-opts.adoc %-table.adoc, $(wildcard $(ADOC_WILDCARD_SOURCES)))
+
 .pve-doc-depends link-refs.json: $(ADOC_SOURCES_GUESS) scan-adoc-refs
-	./scan-adoc-refs *.adoc --depends .pve-doc-depends.tmp > link-refs.json.tmp
+	./scan-adoc-refs $(ADOC_WILDCARD_SOURCES) --depends .pve-doc-depends.tmp > link-refs.json.tmp
 	@cmp --quiet .pve-doc-depends .pve-doc-depends.tmp || mv .pve-doc-depends.tmp .pve-doc-depends
 	@cmp --quiet link-refs.json link-refs.json.tmp || mv link-refs.json.tmp link-refs.json
 
diff --git a/asciidoc/asciidoc-pve.conf b/asciidoc/asciidoc-pve.conf
index 0c28298..47139b8 100644
--- a/asciidoc/asciidoc-pve.conf
+++ b/asciidoc/asciidoc-pve.conf
@@ -3,6 +3,8 @@
 proxmoxGmbh=Proxmox Server Solutions GmbH
 copyright=Proxmox Server Solutions GmbH
 pve=Proxmox VE
+product=Proxmox VE
+product-short=pve
 pricing-url=https://proxmox.com/en/proxmox-virtual-environment/pricing
 website=https://www.proxmox.com/
 forum-url=https://forum.proxmox.com/
diff --git a/pve-doc-generator.mk.in b/pve-doc-generator.mk.in
index 77fd4f6..a733966 100644
--- a/pve-doc-generator.mk.in
+++ b/pve-doc-generator.mk.in
@@ -71,9 +71,15 @@ endif
 %-plain.html: %.adoc ${PVE_COMMON_DOC_SOURCES}
 	${ASCIIDOC_PVE} compile-wiki -o $@ $*.adoc
 
+%-plain.html: proxmox-docs-common/%.adoc ${PVE_COMMON_DOC_SOURCES}
+	${ASCIIDOC_PVE} compile-wiki -o $@ proxmox-docs-common/$*.adoc
+
 chapter-%.html: %.adoc ${PVE_COMMON_DOC_SOURCES}
 	${ASCIIDOC_PVE} compile-chapter -o $@ $*.adoc
 
+chapter-%.html: proxmox-docs-common/%.adoc ${PVE_COMMON_DOC_SOURCES}
+	${ASCIIDOC_PVE} compile-chapter -o $@ proxmox-docs-common/$*.adoc
+
 %.1: %.adoc %.1-synopsis.adoc ${PVE_COMMON_DOC_SOURCES}
 	${ASCIIDOC_PVE} compile-man -o $@ $*.adoc
 	test -z "$${PVE_DOC_INSTANTVIEW}" || man -l $@
diff --git a/scan-adoc-refs b/scan-adoc-refs
index 9252701..fd74c20 100755
--- a/scan-adoc-refs
+++ b/scan-adoc-refs
@@ -5,6 +5,8 @@ use warnings;
 use Getopt::Long;
 use IO::File;
 use JSON;
+use Cwd qw(abs_path);
+use File::Spec;
 
 use Data::Dumper;
 
@@ -19,6 +21,7 @@ my $environments = {
     wiki => 1,
     manvolnum => 1,
     pvelogo => 0, # ignore
+    pve => 0,
 };
 
 my $fileinfo = {};
@@ -76,6 +79,12 @@ sub pop_environment {
 sub register_include {
     my ($filename, $include_filename, $env_list) = @_;
 
+    # get containing directory of the file that includes ..
+    my $reldir = (File::Spec->splitpath($filename))[1];
+    # .. and resolve the included filename relative to that
+    $include_filename = abs_path(File::Spec->join($reldir, $include_filename))
+	if $reldir;
+
     foreach my $e (@$env_list) {
 	$fileinfo->{include}->{$e}->{$filename}->{$include_filename} = 1;
     }
@@ -99,6 +108,7 @@ sub register_title {
 
     # fixme: what about other macros?
     $title =~ s/\{pve\}/Proxmox VE/g;
+    $title =~ s/\{product\}/Proxmox VE/g;
     $title =~ s!http://\S+\[(.*?)\]!$1!g;
 
     # register document title (onyl once)
@@ -269,23 +279,19 @@ foreach my $e (@$start_env) {
     my $toplevel_hash = $fileinfo->{toplevel}->{$e};
     foreach my $fn (sort keys %$toplevel_hash) {
 	my $mansection = $fileinfo->{mansection}->{manvolnum}->{$fn};
+	my $realfn = $fn;
+	$realfn =~ s/^proxmox-docs-common\///;
+	$realfn =~ s/\.adoc$//;
+
 	if ($e eq 'wiki') {
-	    my $realfn = $fn;
-	    $realfn =~ s/\.adoc$//;
 	    if (defined($mansection) && ($mansection == 5)) {
 		$realfn .= ".$mansection";
 	    }
 	    $realfn = "$realfn-plain.html";
-	    $fileinfo->{outfile}->{$e}->{$fn} = $realfn;
 	} elsif ($e eq 'manvolnum') {
-	    my $realfn = $fn;
-	    $realfn =~ s/\.adoc$//;
 	    die "toplevel file '$fn' is not marked as manual page!" if !$mansection;
 	    $realfn .= ".$mansection";
-	    $fileinfo->{outfile}->{$e}->{$fn} = $realfn;
 	} elsif ($e eq 'default') {
-	    my $realfn = $fn;
-	    $realfn =~ s/\.adoc$//;
 	    if (defined($mansection) && ($mansection == 5)) {
 		$realfn .= ".$mansection";
 		$realfn = "$realfn.html";
@@ -297,8 +303,9 @@ foreach my $e (@$start_env) {
 		    $realfn = "$realfn.html";
 		}
 	    }
-	    $fileinfo->{outfile}->{$e}->{$fn} = $realfn;
 	}
+
+	$fileinfo->{outfile}->{$e}->{$fn} = $realfn;
     }
 }
 
-- 
2.44.0



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  parent reply	other threads:[~2024-04-19  9:06 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-19  9:05 [pve-devel] [RFC PATCH docs{, -common} 0/13] introduce common documentation base Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs-common 01/13] installation-media: move page from pve-docs here Christoph Heiss
2024-04-19 10:51   ` Aaron Lauterer
2024-04-19 11:20     ` Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs-common 02/13] installation-media: adapt for common usage Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs-common 03/13] partials: add installation flow from pve-docs Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs-common 04/13] partials: installation-flow: adapt " Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs-common 05/13] partials: add advanced installation hints " Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs-common 06/13] partials: advanced-installation: adapt " Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs 07/13] gitmodules: add proxmox-docs-common Christoph Heiss
2024-04-19  9:05 ` Christoph Heiss [this message]
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs 09/13] images: strip `pve-` prefix from screenshots used in common docs Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs 10/13] asciidoc: conf: add iso-url variable Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs 11/13] installation-media: move to common docs Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs 12/13] installation: use new 'installation-flow' partial from " Christoph Heiss
2024-04-19  9:05 ` [pve-devel] [RFC PATCH docs 13/13] installation: use new 'advanced-installation' " Christoph Heiss

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240419090519.291775-9-c.heiss@proxmox.com \
    --to=c.heiss@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal