diff --git a/mkdocs_exporter/formats/pdf/browser.py b/mkdocs_exporter/formats/pdf/browser.py index 7ab7c57..9a34206 100644 --- a/mkdocs_exporter/formats/pdf/browser.py +++ b/mkdocs_exporter/formats/pdf/browser.py @@ -35,7 +35,14 @@ def __init__(self, options: dict = {}): self.context = None self._launched = False self.playwright = None - self.lock = asyncio.Lock() + try: + self.lock = asyncio.Lock() + except RuntimeError as e: + if 'no current event loop' in str(e): + asyncio.set_event_loop(asyncio.new_event_loop()) + self.lock = asyncio.Lock() + else: + raise self.debug = options.get('debug', False) self.headless = options.get('headless', True) self.timeout = options.get('timeout', 60_000) diff --git a/mkdocs_exporter/formats/pdf/plugin.py b/mkdocs_exporter/formats/pdf/plugin.py index 6109ae0..08ad056 100644 --- a/mkdocs_exporter/formats/pdf/plugin.py +++ b/mkdocs_exporter/formats/pdf/plugin.py @@ -184,10 +184,15 @@ async def render(page: Page) -> None: for page in self.pages: self.aggregator.append(page.formats['pdf']['path'] + '.aggregate') - os.unlink(page.formats['pdf']['path'] + '.aggregate') self.aggregator.save() + for page in self.pages: + try: + os.unlink(page.formats['pdf']['path'] + '.aggregate') + except FileNotFoundError: + pass + @event_priority(-100) def _on_post_build_3(self, **kwargs) -> None: @@ -225,6 +230,8 @@ def flatten(items): for index, page in enumerate(self.pages): page.index = index + if not hasattr(page, 'formats'): + page.formats = {} def _enabled(self, page: Page = None) -> bool: