Name

TagInclude — include (a group of) tags in Interchange

SYNOPSIS

[!] [ :group_name | tag_name ...]

DESCRIPTION

Include a set of tags for compilation and use under the Interchange server. TagDirs are scanned for files, then they're assigned to groups according to TagGroup directives, and finally they're included using TagInclude.

The syntax supports the use of ! to exclude items, and keyword ALL. Tag group names should be prefixed with :. See the section called “EXAMPLES”.

DIRECTIVE TYPE AND DEFAULT VALUE

Global directive

EXAMPLES

Example: Defining TagInclude

The following would include all tags, except those in group crufty and tag [get-url] specifically.

TagInclude ALL !:crufty !get_url

NOTES

AVAILABILITY

TagInclude is available in Interchange versions:

4.6.0-5.9.0 (git-head)

SOURCE

Interchange 5.9.0:

Source: lib/Vend/Config.pm
Line 466

['TagInclude',     'tag_include',     'ALL'],

Source: lib/Vend/Config.pm
Line 2626 (context shows lines 2626-2684)

sub parse_tag_include {
my ($var, $setting) = @_;

my $c;
my $g;

my $mapper = $incmap{$var} || 'TagGroup';
if(defined $C) {
  $c = $C->{$var} || {};
  $g = $C->{$mapper} || {};
}
else {
  no strict 'refs';
  $c = ${"Global::$var"} || {};
  $g = ${"Global::$mapper"} || {};
}

$setting =~ s/"/ /g;
$setting =~ s/^\s+//;
$setting =~ s/\s+$//;
$setting =~ s/[,\s]+/ /g;

if($setting eq 'ALL') {
  return { ALL => 1 };
}

delete $c->{ALL};

get_system_groups() unless $SystemGroupsDone;

my @incs = Text::ParseWords::shellwords($setting);

for(@incs) {
  my @things;
  my $not = 0;
  if(/:/) {
    $not = 1 if s/^!//;
    if(! $g->{$_}) {
      config_warn(
        "unknown %s %s included from %s",
        $mapper,
        $_,
        $var,
      );
    }
    else {
      @things = @{$g->{$_}}
    }
  }
  else {
    @things = ($_);
  }
  for(@things) {
    my $not = s/^!// ? ! $not : $not;
    $c->{$_} = not $not;
  }
}
return $c;
}

AUTHORS

Interchange Development Group

SEE ALSO

TagGroup(7ic)

DocBook! Interchange!