Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/syntax/substitutions.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,3 +236,9 @@ id:
```

A shorthand format is also available. Using `{{.id}}` is equivalent to `{{product.id}}`.

## Previous stack version

Products with a matching legacy URL mapping can access their previous version:

Example: `{{version.stack.previous}}` produces {{version.stack.previous}}.
2 changes: 1 addition & 1 deletion src/Elastic.Documentation.Configuration/BuildContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ public BuildContext(
DocumentationSourceDirectory = ConfigurationPath.Directory!;

Git = gitCheckoutInformation ?? GitCheckoutInformation.Create(DocumentationCheckoutDirectory, ReadFileSystem);
Configuration = new ConfigurationFile(this, VersionsConfiguration, ProductsConfiguration);
Configuration = new ConfigurationFile(this, VersionsConfiguration, ProductsConfiguration, LegacyUrlMappings);
GoogleTagManager = new GoogleTagManagerConfiguration
{
Enabled = false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

using System.IO.Abstractions;
using DotNet.Globbing;
using Elastic.Documentation.Configuration.LegacyUrlMappings;
using Elastic.Documentation.Configuration.Products;
using Elastic.Documentation.Configuration.Suggestions;
using Elastic.Documentation.Configuration.TableOfContents;
Expand Down Expand Up @@ -63,7 +64,7 @@ public record ConfigurationFile : ITableOfContentsScope
Project is not null
&& Project.Equals("Elastic documentation", StringComparison.OrdinalIgnoreCase);

public ConfigurationFile(IDocumentationSetContext context, VersionsConfiguration versionsConfig, ProductsConfiguration productsConfig)
public ConfigurationFile(IDocumentationSetContext context, VersionsConfiguration versionsConfig, ProductsConfiguration productsConfig, LegacyUrlMappingConfiguration legacyUrlMappingsConfig)
{
_context = context;
ScopeDirectory = context.ConfigurationPath.Directory!;
Expand Down Expand Up @@ -167,16 +168,21 @@ public ConfigurationFile(IDocumentationSetContext context, VersionsConfiguration
}
}

foreach (var (id, system) in versionsConfig.VersioningSystems)
foreach (var (id, system, previousVersion) in
versionsConfig.VersioningSystems.Select(kvp =>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ensure VersioningSystems is correct and we can read it.

e.g add system.Legacy as an additional property so we can keep on simply itterating on VersioningSystems

(kvp.Key, kvp.Value,
legacyUrlMappingsConfig.Mappings.FirstOrDefault(m =>
m.Product.VersioningSystem == kvp.Value)?.LegacyVersions.FirstOrDefault() ?? string.Empty)))
{
var name = id.ToStringFast(true);
var alternativeName = name.Replace('-', '_');
_substitutions[$"version.{name}"] = system.Current;
_substitutions[$"version.{alternativeName}"] = system.Current;
_substitutions[$"version.{name}.base"] = system.Base;
_substitutions[$"version.{alternativeName}.base"] = system.Base;
_substitutions[$"version.{name}.previous"] = previousVersion;
_substitutions[$"version.{alternativeName}.previous"] = previousVersion;
}

foreach (var product in productsConfig.Products.Values)
{
var alternativeProductId = product.Id.Replace('-', '_');
Expand Down
Loading