@@ -19,7 +19,7 @@ export function redraw_page_views(plugin: BreadcrumbsPlugin) {
1919
2020 // Ensure the container exists _on the current page_, leaving other pages' containers alone
2121 const page_views_el =
22- markdown_view . containerEl . querySelector ( ".BC-page-views" ) ??
22+ markdown_view . containerEl . querySelector < HTMLElement > ( ".BC-page-views" ) ??
2323 markdown_view . containerEl . createDiv ( {
2424 cls : "BC-page-views w-full mx-auto" ,
2525 } ) ;
@@ -56,6 +56,9 @@ export function redraw_page_views(plugin: BreadcrumbsPlugin) {
5656
5757 view_parent . insertBefore ( page_views_el , view_parent . firstChild ) ;
5858
59+ page_views_el . style . removeProperty ( "margin-left" ) ;
60+ page_views_el . style . removeProperty ( "margin-right" ) ;
61+
5962 // Source mode may have left these on .cm-scroller in older versions.
6063 const preview_scroller = markdown_view . containerEl . querySelector (
6164 ".cm-scroller" ,
@@ -101,6 +104,8 @@ export function redraw_page_views(plugin: BreadcrumbsPlugin) {
101104 }
102105 host . insertBefore ( page_views_el , cm_scroller ) ;
103106 }
107+ page_views_el . style . removeProperty ( "margin-left" ) ;
108+ page_views_el . style . removeProperty ( "margin-right" ) ;
104109 } else {
105110 // Inside the scroller so the trail scrolls with the note; layout class wraps a full-width row.
106111 // Insert as the first child so BC-page-views occupies row 1 (flex: 0 0 100%),
@@ -110,6 +115,23 @@ export function redraw_page_views(plugin: BreadcrumbsPlugin) {
110115 page_views_el ,
111116 cm_scroller . firstChild ,
112117 ) ;
118+
119+ // Obsidian centers text via .cm-sizer (max-width + margin:auto), so text
120+ // starts at (scroller_w - file_line_w) / 2 + gutter_w. Shift BC's
121+ // margin-left by the gutter width to match.
122+ if ( plugin . settings . views . page . all . readable_line_width ) {
123+ requestAnimationFrame ( ( ) => {
124+ if ( ! page_views_el . isConnected ) return ;
125+ const gutters =
126+ cm_scroller . querySelector < HTMLElement > ( ".cm-gutters" ) ;
127+ const G = gutters ?. getBoundingClientRect ( ) . width ?? 0 ;
128+ page_views_el . style . marginLeft = `calc((100% - var(--file-line-width)) / 2 + ${ G } px)` ;
129+ page_views_el . style . marginRight = "auto" ;
130+ } ) ;
131+ } else {
132+ page_views_el . style . removeProperty ( "margin-left" ) ;
133+ page_views_el . style . removeProperty ( "margin-right" ) ;
134+ }
113135 }
114136 }
115137
0 commit comments