1515env .install_gettext_translations (i18n )
1616
1717
18- def get_page_metadata (locale_slug , page ):
18+ def get_page_metadata (locale_slug , page , version_slug = False ):
1919 """title/order etc for a page
2020 this is how the markdown file is composed:
2121
@@ -63,11 +63,15 @@ def get_page_metadata(locale_slug, page):
6363 else page .split ("/" )[- 1 ]
6464 )
6565 path_dir = page .split ("/" )[- 1 ].replace (".md" , ".html" )
66- header_obj ["path" ] = f"/{ locale_slug } { path_dir } "
66+ header_obj ["path" ] = (
67+ f"/{ locale_slug } { path_dir } "
68+ if not version_slug
69+ else f"/{ version_slug } /{ locale_slug } { path_dir } "
70+ )
6771 return header_obj
6872
6973
70- def get_site_data (locale_slug , locale_code , page ):
74+ def get_site_data (locale_slug , locale_code , page , version_slug = False ):
7175 """this should be a file"""
7276 category_dirs = glob ("content/*/" )
7377 categories = []
@@ -80,14 +84,14 @@ def get_site_data(locale_slug, locale_code, page):
8084 f"locale/{ locale_code } /{ cat_dir } /*.md" if locale_slug else f"{ cat_dir } /*.md"
8185 )
8286 for subcat in glob (location ):
83- subcategories .append (get_page_metadata (locale_slug , subcat ))
87+ subcategories .append (get_page_metadata (locale_slug , subcat , version_slug ))
8488 subcategories .sort (key = lambda v : v .get ("Order" , - 1 ))
8589
8690 categories .append ({** parsed , ** {"subcategories" : subcategories }})
8791 categories .sort (key = lambda v : v ["order" ])
8892 template_data = {"categories" : categories }
8993
90- template_data ["headers" ] = get_page_metadata (locale_slug , page )
94+ template_data ["headers" ] = get_page_metadata (locale_slug , page , version_slug )
9195
9296 return template_data
9397
@@ -120,6 +124,7 @@ def format_markdown(file_path):
120124
121125
122126if __name__ == "__main__" :
127+ # when we generate for older versions we need to change the page links
123128 version = sys .argv [1 ] if len (sys .argv ) > 1 else False
124129 # iterate through each locale
125130 for locale in i18n .locales_metadata :
@@ -131,15 +136,13 @@ def format_markdown(file_path):
131136
132137 i18n .setLocale (locale ["code" ])
133138
134- LOCALIZED_SITE_PATH = f"site/ { version } /" if version else "site/"
139+ LOCALIZED_SITE_PATH = "site/"
135140 if locale ["code" ] != "en_US" :
136141 paths = [
137142 ["index.html" , f"locale/{ locale ['code' ]} /content/index.md" ],
138143 ["page.html" , f"locale/{ locale ['code' ]} /content/**/*.md" ],
139144 ]
140- LOCALIZED_SITE_PATH = (
141- f"site/{ version } /{ SLUG } " if version else f"site/{ SLUG } "
142- )
145+ LOCALIZED_SITE_PATH = f"site/{ SLUG } "
143146
144147 # iterate through template types
145148 for path , content_paths in paths :
@@ -158,11 +161,17 @@ def format_markdown(file_path):
158161 with open (
159162 f"{ LOCALIZED_SITE_PATH } { output_path } " , "w+" , encoding = "utf-8"
160163 ) as render_file :
161- data = get_site_data (SLUG , locale ["code" ], content_path )
164+ data = get_site_data (SLUG , locale ["code" ], content_path , version )
162165 data ["content" ] = format_markdown (content_path )
163- data ["path" ] = f"/{ SLUG } { output_path } "
166+ data ["path" ] = (
167+ f"/{ SLUG } { output_path } "
168+ if not version
169+ else f"/{ version } /{ SLUG } { output_path } "
170+ )
171+ versions = ["latest" , "v0.7.5" ]
164172 render_file .write (
165173 template .render (
174+ versions = versions ,
166175 locale = locale ,
167176 locales_metadata = i18n .locales_metadata ,
168177 ** data ,
0 commit comments