Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e64e20133a | ||
|
|
52949a952a | ||
|
|
3d7edbf7d9 |
@@ -1,6 +1,18 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
0.5.2
|
||||
-----
|
||||
|
||||
- Remove support for singlehtml
|
||||
`#40 <https://github.com/jdillard/sphinx-llms-txt/pull/40>`_
|
||||
|
||||
0.5.1
|
||||
-----
|
||||
|
||||
- Only allow builders that have _sources directory
|
||||
`#38 <https://github.com/jdillard/sphinx-llms-txt/pull/38>`_
|
||||
|
||||
0.5.0
|
||||
-----
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ from .manager import LLMSFullManager
|
||||
from .processor import DocumentProcessor
|
||||
from .writer import FileWriter
|
||||
|
||||
__version__ = "0.5.0"
|
||||
__version__ = "0.5.2"
|
||||
|
||||
# Export classes needed by tests
|
||||
__all__ = [
|
||||
@@ -113,7 +113,6 @@ def build_finished(app: Sphinx, exception):
|
||||
def setup(app: Sphinx) -> Dict[str, Any]:
|
||||
"""Set up the Sphinx extension."""
|
||||
|
||||
# Add configuration options
|
||||
app.add_config_value("llms_txt_file", True, "env")
|
||||
app.add_config_value("llms_txt_filename", "llms.txt", "env")
|
||||
app.add_config_value("llms_txt_full_file", True, "env")
|
||||
@@ -127,14 +126,20 @@ def setup(app: Sphinx) -> Dict[str, Any]:
|
||||
app.add_config_value("llms_txt_code_files", [], "env")
|
||||
app.add_config_value("llms_txt_code_base_path", None, "env")
|
||||
|
||||
# Connect to Sphinx events
|
||||
app.connect("doctree-resolved", doctree_resolved)
|
||||
app.connect("build-finished", build_finished)
|
||||
def builder_inited(app):
|
||||
"""Used to limit what builders are allowed to run the extension."""
|
||||
|
||||
# Reset manager and root paragraph for each build
|
||||
global _manager, _root_first_paragraph
|
||||
_manager = LLMSFullManager()
|
||||
_root_first_paragraph = ""
|
||||
allowed_builders = ["html", "dirhtml"]
|
||||
if hasattr(app, "builder") and app.builder.name in allowed_builders:
|
||||
# Reset manager and root paragraph for each build
|
||||
global _manager, _root_first_paragraph
|
||||
_manager = LLMSFullManager()
|
||||
_root_first_paragraph = ""
|
||||
|
||||
app.connect("doctree-resolved", doctree_resolved)
|
||||
app.connect("build-finished", build_finished)
|
||||
|
||||
app.connect("builder-inited", builder_inited)
|
||||
|
||||
return {
|
||||
"version": __version__,
|
||||
|
||||
@@ -197,7 +197,6 @@ class LLMSFullManager:
|
||||
possible_sources = [
|
||||
Path(outdir) / "_sources",
|
||||
Path(outdir) / "html" / "_sources",
|
||||
Path(outdir) / "singlehtml" / "_sources",
|
||||
]
|
||||
|
||||
for path in possible_sources:
|
||||
|
||||
@@ -41,6 +41,42 @@ def test_setup_returns_valid_dict():
|
||||
assert "parallel_write_safe" in result
|
||||
|
||||
|
||||
def test_builder_inited_with_disallowed_builder():
|
||||
"""Test that disallowed builders do not trigger extension setup."""
|
||||
import sphinx_llms_txt
|
||||
|
||||
# Reset global state
|
||||
sphinx_llms_txt._manager = sphinx_llms_txt.LLMSFullManager()
|
||||
sphinx_llms_txt._root_first_paragraph = ""
|
||||
|
||||
# Mock a Sphinx app with a disallowed builder
|
||||
class MockBuilder:
|
||||
name = "text" # Not in allowed list
|
||||
|
||||
class MockApp:
|
||||
def __init__(self):
|
||||
self.config_values = {}
|
||||
self.connections = {}
|
||||
self.builder = MockBuilder()
|
||||
|
||||
def add_config_value(self, name, default, rebuild):
|
||||
self.config_values[name] = (default, rebuild)
|
||||
|
||||
def connect(self, event, handler):
|
||||
self.connections[event] = handler
|
||||
|
||||
app = MockApp()
|
||||
setup(app)
|
||||
|
||||
# Trigger builder-inited
|
||||
builder_inited_handler = app.connections["builder-inited"]
|
||||
builder_inited_handler(app)
|
||||
|
||||
# With disallowed builder, other events should NOT be connected
|
||||
assert "doctree-resolved" not in app.connections
|
||||
assert "build-finished" not in app.connections
|
||||
|
||||
|
||||
def test_document_collector_initialization():
|
||||
"""Test initialization of DocumentCollector."""
|
||||
collector = DocumentCollector()
|
||||
|
||||
Reference in New Issue
Block a user