From 781aa139f2daa5c39e428647e7a5ed6b0ed5374e Mon Sep 17 00:00:00 2001 From: Yang Zhengguo Date: Thu, 27 Aug 2026 17:50:15 +0800 Subject: [PATCH] update-docs: resolve {build_dir} in translated pages Resolve translated includes from the language directory when they use {build_dir}. Keep relative includes based on their source directory. Fixes #2197 Signed-off-by: Yang Zhengguo --- script/update-docs.rb | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/script/update-docs.rb b/script/update-docs.rb index b441e78899..da1f45202d 100644 --- a/script/update-docs.rb +++ b/script/update-docs.rb @@ -81,12 +81,14 @@ def wrap_front_matter(front_matter) end def expand_l10n(path, content, get_f_content, categories, ext) - content.gsub!(/include::({build_dir}\/)?(\S+)\.#{ext}/) do |line| - line.gsub!("include::", "") - if categories[line] - new_content = categories[line] + content.gsub!(/include::({build_dir}\/)?(\S+)\.#{ext}/) do + match = Regexp.last_match + target = "#{match[2]}.#{ext}" + base = match[1] ? path.split("/", 2).first : File.dirname(path) + if categories[target] + new_content = categories[target] else - new_content, new_path = get_f_content.call(path, line) + new_content, new_path = get_f_content.call(base, target) end if new_content expand_l10n(new_path, new_content, get_f_content, categories, ext) @@ -230,8 +232,8 @@ def index_l10n_doc(filter_tags, doc_list, get_content) puts "Found #{doc_files.size} entries" - get_content_f = proc do |source, target| - name = File.join(File.dirname(source), target) + get_content_f = proc do |base, target| + name = File.join(base, target) content_file = tag_files.detect { |ent| ent.first == name } if content_file new_content = get_content.call(content_file[1])