@@ -12,6 +12,7 @@ use rari_types::locale::{default_locale, Locale};
12
12
use rari_utils:: concat_strs;
13
13
use scraper:: { Html , Node , Selector } ;
14
14
use serde:: { Deserialize , Serialize , Serializer } ;
15
+ use tracing:: { span, Level } ;
15
16
16
17
use super :: links:: { render_link_from_page, render_link_via_page, LinkModifier } ;
17
18
use super :: modifier:: insert_attribute;
@@ -110,7 +111,7 @@ pub fn render_sidebar(s: &str, slug: &str, locale: Locale) -> Result<String, Doc
110
111
return Ok :: < _ , DocError > ( sb) ;
111
112
}
112
113
let sidebar = read_sidebar ( s, locale, slug) ?;
113
- let rendered_sidebar = sidebar. render ( locale) ?;
114
+ let rendered_sidebar = sidebar. render ( s , locale) ?;
114
115
SIDEBAR_CACHE
115
116
. entry ( locale)
116
117
. or_default ( )
@@ -119,7 +120,7 @@ pub fn render_sidebar(s: &str, slug: &str, locale: Locale) -> Result<String, Doc
119
120
rendered_sidebar
120
121
} else {
121
122
let sidebar = read_sidebar ( s, locale, slug) ?;
122
- sidebar. render_with_slug ( slug, locale) ?
123
+ sidebar. render_with_slug ( s , slug, locale) ?
123
124
} ;
124
125
Ok :: < _ , DocError > ( rendered_sidebar)
125
126
}
@@ -214,23 +215,34 @@ impl TryFrom<Sidebar> for MetaSidebar {
214
215
}
215
216
216
217
impl MetaSidebar {
217
- pub fn render ( & self , locale : Locale ) -> Result < String , DocError > {
218
+ fn render_internal (
219
+ & self ,
220
+ name : & str ,
221
+ slug : Option < & str > ,
222
+ locale : Locale ,
223
+ ) -> Result < String , DocError > {
224
+ let span = span ! ( Level :: ERROR , "sidebar" , sidebar = name, ) ;
225
+ let _enter = span. enter ( ) ;
218
226
let mut out = String :: new ( ) ;
219
227
out. push_str ( "<ol>" ) ;
220
228
for entry in & self . entries {
221
- entry. render ( & mut out, locale, None , & self . l10n ) ?;
229
+ entry. render ( & mut out, locale, slug , & self . l10n ) ?;
222
230
}
223
231
out. push_str ( "</ol>" ) ;
224
232
Ok ( out)
225
233
}
226
- pub fn render_with_slug ( & self , slug : & str , locale : Locale ) -> Result < String , DocError > {
227
- let mut out = String :: new ( ) ;
228
- out. push_str ( "<ol>" ) ;
229
- for entry in & self . entries {
230
- entry. render ( & mut out, locale, Some ( slug) , & self . l10n ) ?;
231
- }
232
- out. push_str ( "</ol>" ) ;
233
- Ok ( out)
234
+
235
+ pub fn render ( & self , name : & str , locale : Locale ) -> Result < String , DocError > {
236
+ self . render_internal ( name, None , locale)
237
+ }
238
+
239
+ pub fn render_with_slug (
240
+ & self ,
241
+ name : & str ,
242
+ slug : & str ,
243
+ locale : Locale ,
244
+ ) -> Result < String , DocError > {
245
+ self . render_internal ( name, Some ( slug) , locale)
234
246
}
235
247
}
236
248
0 commit comments