sphinx_biel 0.1.8__tar.gz → 0.1.9__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,11 @@ Changelog
5
5
  All notable changes to this project will be documented in this file.
6
6
 
7
7
 
8
+ [0.1.9] - 04 February 2026
9
+
10
+
11
+ * New ``metadata`` field.
12
+
8
13
  [0.1.7] - 11 November 2025
9
14
 
10
15
  Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sphinx_biel
3
- Version: 0.1.8
3
+ Version: 0.1.9
4
4
  Summary: ASK AI chatbot for Sphinx.
5
5
  Author-email: TechDocs Studio <info@techdocs.studio>
6
6
  Description-Content-Type: text/x-rst
@@ -0,0 +1,128 @@
1
+ """
2
+ ASK AI chatbot for Sphinx.
3
+
4
+ (c) 2024 - present Biel.ai
5
+ This code is licensed under MIT license (see LICENSE.md for details).
6
+ """
7
+
8
+ __version__ = "0.1.9"
9
+
10
+ from sphinx.application import Sphinx
11
+
12
+
13
+ class BielExtension:
14
+ DEFAULT_OPTIONS = {
15
+ # biel-button
16
+ "project": None,
17
+ "button_position": "bottom-right",
18
+ "button_text": "Ask AI",
19
+ "button_style": "dark",
20
+ "custom_font": None,
21
+ "hide_icon": None,
22
+ "ai_icon": None,
23
+ "hide_avatars": None,
24
+ "version": "latest",
25
+ "api_key": None,
26
+ "metadata": None,
27
+ # biel-bot
28
+ "disable_input": None,
29
+ "email": None,
30
+ "expand_modal": None,
31
+ "hide_close_button": None,
32
+ "hide_expand_button": None,
33
+ "hide_refresh_button": None,
34
+ "hide_sources": None,
35
+ "hide_feedback": None,
36
+ "hide_think_mode_button": None,
37
+ "hide_tooltips": None,
38
+ "modal_position": None,
39
+ "show_terms_modal": None,
40
+ "think_mode_enabled": None,
41
+ # biel-bot text
42
+ "assistant_label": None,
43
+ "close_button_text": None,
44
+ "collapse_button_text": None,
45
+ "error_message_4_0_3": None,
46
+ "error_message_4_0_4": None,
47
+ "error_message_default": None,
48
+ "expand_button_text": None,
49
+ "footer_text": None,
50
+ "header_title": "Biel.ai chatbot",
51
+ "input_placeholder_text": None,
52
+ "refresh_button_text": None,
53
+ "send_button_text": None,
54
+ "sources_text": None,
55
+ "suggested_questions": None,
56
+ "suggested_questions_title": None,
57
+ "terms_checkbox_text": None,
58
+ "terms_description": None,
59
+ "terms_title": None,
60
+ "think_mode_button_text": None,
61
+ "welcome_message": None,
62
+ }
63
+
64
+ def __init__(self, app: Sphinx):
65
+ self.app = app
66
+ self.setup_options()
67
+ self.setup_events()
68
+
69
+ @staticmethod
70
+ def snake_to_kebab(string):
71
+ """Convert snake_case string to kebab-case."""
72
+ return string.replace("_", "-")
73
+
74
+ def inject_biel_scripts(self, app, pagename, templatename, context, doctree):
75
+ version = getattr(app.config, "biel_version", self.DEFAULT_OPTIONS["version"])
76
+ biel_js_module = f"""
77
+ <script type="module" src="https://cdn.jsdelivr.net/npm/biel-search@{version}/dist/biel-search/biel-search.esm.js"></script>
78
+ """
79
+
80
+ # Add Biel JS module to body
81
+ context.setdefault("body", "")
82
+ context["body"] += biel_js_module
83
+
84
+ if getattr(app.config, "biel_button_position", None) != "default":
85
+ attribute_pairs = [
86
+ f'bielBtn.setAttribute("{self.snake_to_kebab(key)}", "{getattr(app.config, f"biel_{key}")}");'
87
+ for key in self.DEFAULT_OPTIONS.keys()
88
+ if getattr(app.config, f"biel_{key}") is not None
89
+ ]
90
+ set_attributes_script = "\n ".join(attribute_pairs)
91
+
92
+ button_text = getattr(
93
+ app.config, "biel_button_text", self.DEFAULT_OPTIONS["button_text"]
94
+ )
95
+
96
+ biel_script = f'''
97
+ <script>
98
+ window.addEventListener('DOMContentLoaded', (event) => {{
99
+ let bielBtn = document.createElement("biel-button");
100
+ bielBtn.innerHTML = "{button_text}";
101
+ {set_attributes_script}
102
+ document.body.appendChild(bielBtn);
103
+ }});
104
+ </script>
105
+ '''
106
+ context["body"] += biel_script
107
+
108
+ def setup_options(self):
109
+ for key in self.DEFAULT_OPTIONS.keys():
110
+ self.app.add_config_value(f"biel_{key}", self.DEFAULT_OPTIONS[key], "html")
111
+
112
+ def setup_events(self):
113
+ version = getattr(
114
+ self.app.config, "biel_version", self.DEFAULT_OPTIONS["version"]
115
+ )
116
+ self.app.add_css_file(
117
+ f"https://cdn.jsdelivr.net/npm/biel-search@{version}/dist/biel-search/biel-search.css"
118
+ )
119
+ self.app.connect("html-page-context", self.inject_biel_scripts)
120
+
121
+
122
+ def setup(app: Sphinx):
123
+ extension = BielExtension(app)
124
+ return {
125
+ "version": __version__,
126
+ "parallel_read_safe": True,
127
+ "parallel_write_safe": True,
128
+ }
@@ -1,121 +0,0 @@
1
- """
2
- ASK AI chatbot for Sphinx.
3
-
4
- (c) 2024 - present Biel.ai
5
- This code is licensed under MIT license (see LICENSE.md for details).
6
- """
7
-
8
- __version__ = "0.1.8"
9
-
10
- from sphinx.application import Sphinx
11
-
12
- class BielExtension:
13
- DEFAULT_OPTIONS = {
14
- # biel-button
15
- 'project': None,
16
- 'button_position': 'bottom-right',
17
- 'button_text': 'Ask AI',
18
- 'button_style': "dark",
19
- 'custom_font': None,
20
- 'hide_icon': None,
21
- 'ai_icon': None,
22
- 'hide_avatars': None,
23
- 'version': 'latest',
24
- 'api_key': None,
25
-
26
- # biel-bot
27
- 'disable_input': None,
28
- 'email': None,
29
- 'expand_modal': None,
30
- 'hide_close_button': None,
31
- 'hide_expand_button': None,
32
- 'hide_refresh_button': None,
33
- 'hide_sources': None,
34
- 'hide_feedback': None,
35
- 'hide_think_mode_button': None,
36
- 'hide_tooltips': None,
37
- 'modal_position': None,
38
- 'show_terms_modal': None,
39
- 'think_mode_enabled': None,
40
-
41
- # biel-bot text
42
- 'assistant_label': None,
43
- 'close_button_text': None,
44
- 'collapse_button_text': None,
45
- 'error_message_4_0_3': None,
46
- 'error_message_4_0_4': None,
47
- 'error_message_default': None,
48
- 'expand_button_text': None,
49
- 'footer_text': None,
50
- 'header_title': 'Biel.ai chatbot',
51
- 'input_placeholder_text': None,
52
- 'refresh_button_text': None,
53
- 'send_button_text': None,
54
- 'sources_text': None,
55
- 'suggested_questions': None,
56
- 'suggested_questions_title': None,
57
- 'terms_checkbox_text': None,
58
- 'terms_description': None,
59
- 'terms_title': None,
60
- 'think_mode_button_text': None,
61
- 'welcome_message': None,
62
- }
63
-
64
- def __init__(self, app: Sphinx):
65
- self.app = app
66
- self.setup_options()
67
- self.setup_events()
68
-
69
- @staticmethod
70
- def snake_to_kebab(string):
71
- """Convert snake_case string to kebab-case."""
72
- return string.replace('_', '-')
73
-
74
- def inject_biel_scripts(self, app, pagename, templatename, context, doctree):
75
- version = getattr(app.config, "biel_version", self.DEFAULT_OPTIONS['version'])
76
- biel_js_module = f'''
77
- <script type="module" src="https://cdn.jsdelivr.net/npm/biel-search@{version}/dist/biel-search/biel-search.esm.js"></script>
78
- '''
79
-
80
- # Add Biel JS module to body
81
- context.setdefault('body', '')
82
- context['body'] += biel_js_module
83
-
84
- if getattr(app.config, "biel_button_position", None) != "default":
85
- attribute_pairs = [
86
- f'bielBtn.setAttribute("{self.snake_to_kebab(key)}", "{getattr(app.config, f"biel_{key}")}");'
87
- for key in self.DEFAULT_OPTIONS.keys() if getattr(app.config, f"biel_{key}") is not None
88
- ]
89
- set_attributes_script = "\n ".join(attribute_pairs)
90
-
91
- button_text = getattr(app.config, "biel_button_text", self.DEFAULT_OPTIONS['button_text'])
92
-
93
- biel_script = f'''
94
- <script>
95
- window.addEventListener('DOMContentLoaded', (event) => {{
96
- let bielBtn = document.createElement("biel-button");
97
- bielBtn.innerHTML = "{button_text}";
98
- {set_attributes_script}
99
- document.body.appendChild(bielBtn);
100
- }});
101
- </script>
102
- '''
103
- context['body'] += biel_script
104
-
105
- def setup_options(self):
106
- for key in self.DEFAULT_OPTIONS.keys():
107
- self.app.add_config_value(f'biel_{key}', self.DEFAULT_OPTIONS[key], 'html')
108
-
109
- def setup_events(self):
110
- version = getattr(self.app.config, "biel_version", self.DEFAULT_OPTIONS["version"])
111
- self.app.add_css_file(f'https://cdn.jsdelivr.net/npm/biel-search@{version}/dist/biel-search/biel-search.css')
112
- self.app.connect('html-page-context', self.inject_biel_scripts)
113
-
114
-
115
- def setup(app: Sphinx):
116
- extension = BielExtension(app)
117
- return {
118
- 'version': __version__,
119
- 'parallel_read_safe': True,
120
- 'parallel_write_safe': True,
121
- }
File without changes
File without changes
File without changes
File without changes
File without changes