From 459308313d45bc7889792dc08c100375100e5a25 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Sat, 8 Oct 2016 13:07:08 +0200 Subject: [PATCH] support reftext for block IDs --- asciidoc-pve.in | 3 +++ scan-adoc-refs | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/asciidoc-pve.in b/asciidoc-pve.in index 1d0c791..ab6edef 100644 --- a/asciidoc-pve.in +++ b/asciidoc-pve.in @@ -65,10 +65,13 @@ sub replace_wiki_xref { my ($blockid, $text) = @_; my $link = $fileinfo->{blockid_target}->{wiki}->{$blockid}; + my $reftext = $fileinfo->{reftext}->{wiki}->{$blockid}; die "unable to resolve wiki link (xref:$blockid)\n" if !defined($link); + $text = $reftext if !length($text); + return "$link\[$text\]"; } diff --git a/scan-adoc-refs b/scan-adoc-refs index 296f05e..613f282 100755 --- a/scan-adoc-refs +++ b/scan-adoc-refs @@ -83,13 +83,15 @@ sub register_include { } sub register_blockid { - my ($filename, $blockid, $env_list) = @_; + my ($filename, $blockid, $reftext, $env_list) = @_; foreach my $e (@$env_list) { my $fn = $fileinfo->{blockid}->{$e}->{$blockid}; die "blockid '$blockid' already defined in $fn" if defined($fn); $fileinfo->{blockid}->{$e}->{$blockid} = $filename; + $fileinfo->{reftext}->{$e}->{$blockid} = $reftext + if defined($reftext); } } @@ -142,14 +144,15 @@ sub scan_adoc_file { if ($line =~ m/^\[\[(.*)\]\]\s*$/) { my $blockid = $1; die "implement me" if $blockid =~m/,/; - register_blockid($filename, $blockid, $env_stack->[-1]); + my $reftext = ''; + register_blockid($filename, $blockid, $reftext, $env_stack->[-1]); } # fixme: "anchor:" # bibliography anchors if ($line =~ m/\[\[\[([^\]]*)\]\]\]/) { my $blockid = $1; die "implement me" if $blockid =~m/,/; - register_blockid($filename, $blockid, $env_stack->[-1]); + register_blockid($filename, $blockid, "[$blockid]", $env_stack->[-1]); } } } -- 2.39.2