Skip to content

buildcontext

Class info

Classes

Name Children Inherits
BuildContext
mkdocs_mknodes.buildcontext
Information about a website build.

    🛈 DocStrings

    Module containing the BuildCollector class.

    BuildContext dataclass

    Bases: Context

    Information about a website build.

    Parameters:

    Name Type Description Default
    resources str

    A resource bundle containing different assets.

    Most of the time this class is used for bundling required resources for a specific node.

    <dynamic>
    node_counter str

    Dict subclass for counting hashable items. Sometimes called a bag or multiset. Elements are stored as dictionary keys and their counts are stored as dictionary values.

    c = Counter('abcdeabcdabcaba') # count elements from a string

    c.most_common(3) # three most common elements [('a', 5), ('b', 4), ('c', 3)] sorted(c) # list all unique elements ['a', 'b', 'c', 'd', 'e'] ''.join(sorted(c.elements())) # list elements with repetitions 'aaaaabbbbcccdde' sum(c.values()) # total of all counts 15

    c['a'] # count of letter 'a' 5 for elem in 'shazam': # update counts from an iterable ... c[elem] += 1 # by adding 1 to each element's count c['a'] # now there are seven 'a' 7 del c['b'] # remove all 'b' c['b'] # now there are zero 'b' 0

    d = Counter('simsalabim') # make another counter c.update(d) # add in the second counter c['a'] # now there are nine 'a' 9

    c.clear() # empty the counter c Counter()

    Note: If a count is set to zero or reduced to zero, it will remain in the counter until the entry is deleted or the counter is cleared:

    c = Counter('aaabbc') c['b'] -= 2 # reduce the count of 'b' by two c.most_common() # 'b' is still in, but its count is zero [('a', 3), ('c', 1), ('b', 0)]

    <dynamic>
    templates str

    Built-in mutable sequence.

    If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.

    <dynamic>
    Source code in mkdocs_mknodes/buildcontext.py
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    @dataclasses.dataclass
    class BuildContext(contexts.Context):
        """Information about a website build."""
    
        page_mapping: dict = dataclasses.field(default_factory=dict)
        """A dictionary mapping all page filenames to the corresponding MkPages."""
        resources: resources.Resources = dataclasses.field(
            default_factory=resources.Resources,
        )
        """All resources (JS, CSS, extensions) inferred from the build."""
        # node_stats: list[contexts.NodeBuildStats] = dataclasses.field(default_factory=list)
        """Some stats about nodes construction."""
        build_files: dict = dataclasses.field(default_factory=dict)
        """A mapping of filepaths -> Markdown."""
        node_counter: collections.Counter = dataclasses.field(
            default_factory=collections.Counter,
        )
        """Counter containing the amount of creations for each node class."""
        templates: list[mk.PageTemplate] = dataclasses.field(default_factory=list)
        """A list of required templates."""
    

    build_files class-attribute instance-attribute

    build_files: dict = field(default_factory=dict)
    

    A mapping of filepaths -> Markdown.

    node_counter class-attribute instance-attribute

    node_counter: Counter = field(default_factory=Counter)
    

    Counter containing the amount of creations for each node class.

    page_mapping class-attribute instance-attribute

    page_mapping: dict = field(default_factory=dict)
    

    A dictionary mapping all page filenames to the corresponding MkPages.

    resources class-attribute instance-attribute

    resources: Resources = field(default_factory=Resources)
    

    All resources (JS, CSS, extensions) inferred from the build.

    templates class-attribute instance-attribute

    templates: list[PageTemplate] = field(default_factory=list)
    

    A list of required templates.