@@ -446,6 +446,7 @@ def __init__(
446
446
source_dir : "str | None" = None ,
447
447
dynamic : bool | None = None ,
448
448
parser = "numpy" ,
449
+ _fast_inventory = False ,
449
450
):
450
451
self .layout = self .load_layout (
451
452
sections = sections , package = package , options = options
@@ -467,6 +468,8 @@ def __init__(
467
468
self .source_dir = str (Path (source_dir ).absolute ()) if source_dir else None
468
469
self .dynamic = dynamic
469
470
471
+ self ._fast_inventory = _fast_inventory
472
+
470
473
def load_layout (self , sections : dict , package : str , options = None ):
471
474
# TODO: currently returning the list of sections, to make work with
472
475
# previous code. We should make Layout a first-class citizen of the
@@ -522,7 +525,16 @@ def build(self, filter: str = "*"):
522
525
523
526
_log .info ("Creating inventory file" )
524
527
inv = self .create_inventory (items )
525
- convert_inventory (inv , self .out_inventory )
528
+ if self ._fast_inventory :
529
+ # dump the inventory file directly as text
530
+ # TODO: copied from __main__.py, should add to inventory.py
531
+ import sphobjinv as soi
532
+
533
+ df = inv .data_file ()
534
+ soi .writebytes (Path (self .out_inventory ).with_suffix (".txt" ), df )
535
+
536
+ else :
537
+ convert_inventory (inv , self .out_inventory )
526
538
527
539
# sidebar ----
528
540
@@ -647,12 +659,18 @@ def from_quarto_config(cls, quarto_cfg: "str | dict"):
647
659
648
660
quarto_cfg = yaml .safe_load (open (quarto_cfg ))
649
661
650
- cfg = quarto_cfg ["quartodoc" ]
662
+ cfg = quarto_cfg .get ("quartodoc" )
663
+ if cfg is None :
664
+ raise KeyError ("No `quartodoc:` section found in your _quarto.yml." )
651
665
style = cfg .get ("style" , "pkgdown" )
652
-
653
666
cls_builder = cls ._registry [style ]
654
667
655
- return cls_builder (** {k : v for k , v in cfg .items () if k != "style" })
668
+ _fast_inventory = quarto_cfg .get ("interlinks" , {}).get ("fast" , False )
669
+
670
+ return cls_builder (
671
+ ** {k : v for k , v in cfg .items () if k != "style" },
672
+ _fast_inventory = _fast_inventory ,
673
+ )
656
674
657
675
658
676
class BuilderPkgdown (Builder ):
0 commit comments