|
8 | 8 | using Elastic.Documentation.Configuration.Suggestions; |
9 | 9 | using Elastic.Documentation.Configuration.TableOfContents; |
10 | 10 | using Elastic.Documentation.Configuration.Versions; |
| 11 | +using Elastic.Documentation.Configuration.LegacyUrlMappings; |
11 | 12 | using Elastic.Documentation.Links; |
12 | 13 | using Elastic.Documentation.Navigation; |
13 | 14 | using YamlDotNet.RepresentationModel; |
@@ -63,7 +64,7 @@ public record ConfigurationFile : ITableOfContentsScope |
63 | 64 | Project is not null |
64 | 65 | && Project.Equals("Elastic documentation", StringComparison.OrdinalIgnoreCase); |
65 | 66 |
|
66 | | - public ConfigurationFile(IDocumentationSetContext context, VersionsConfiguration versionsConfig, ProductsConfiguration productsConfig) |
| 67 | + public ConfigurationFile(IDocumentationSetContext context, VersionsConfiguration versionsConfig, ProductsConfiguration productsConfig, LegacyUrlMappingConfiguration legacyUrlMappingsConfig) |
67 | 68 | { |
68 | 69 | _context = context; |
69 | 70 | ScopeDirectory = context.ConfigurationPath.Directory!; |
@@ -167,16 +168,21 @@ public ConfigurationFile(IDocumentationSetContext context, VersionsConfiguration |
167 | 168 | } |
168 | 169 | } |
169 | 170 |
|
170 | | - foreach (var (id, system) in versionsConfig.VersioningSystems) |
| 171 | + foreach (var (id, system, previousVersion) in |
| 172 | + versionsConfig.VersioningSystems.Select(kvp => |
| 173 | + (kvp.Key, kvp.Value, |
| 174 | + legacyUrlMappingsConfig.Mappings.FirstOrDefault(m => |
| 175 | + m.Product.VersioningSystem == kvp.Value)?.LegacyVersions.FirstOrDefault() ?? string.Empty))) |
171 | 176 | { |
172 | 177 | var name = id.ToStringFast(true); |
173 | 178 | var alternativeName = name.Replace('-', '_'); |
174 | 179 | _substitutions[$"version.{name}"] = system.Current; |
175 | 180 | _substitutions[$"version.{alternativeName}"] = system.Current; |
176 | 181 | _substitutions[$"version.{name}.base"] = system.Base; |
177 | 182 | _substitutions[$"version.{alternativeName}.base"] = system.Base; |
| 183 | + _substitutions[$"version.{name}.previous"] = previousVersion; |
| 184 | + _substitutions[$"version.{alternativeName}.previous"] = previousVersion; |
178 | 185 | } |
179 | | - |
180 | 186 | foreach (var product in productsConfig.Products.Values) |
181 | 187 | { |
182 | 188 | var alternativeProductId = product.Id.Replace('-', '_'); |
|
0 commit comments