sphinx_biel 0.1.7__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,21 @@ 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
+
13
+ [0.1.7] - 11 November 2025
14
+
15
+ Added
16
+ -----
17
+
18
+ * New ``hide_think_mode_button`` field for hiding the think mode button.
19
+ * New ``hide_tooltips`` field for hiding the tooltips.
20
+ * New ``think_mode_enabled`` field for enabling the think mode.
21
+ * New ``think_mode_button_text`` field for configuring the think mode button text.
22
+
8
23
  [0.1.7] - 15 September 2025
9
24
  ===========================
10
25
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sphinx_biel
3
- Version: 0.1.7
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,112 +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.7"
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
- 'modal_position': None,
36
- 'show_terms_modal': None,
37
-
38
- # biel-bot text
39
- 'error_message_4_0_3': None,
40
- 'error_message_4_0_4': None,
41
- 'error_message_default': None,
42
- 'footer_text': None,
43
- 'header_title': 'Biel.ai chatbot',
44
- 'input_placeholder_text': None,
45
- 'send_button_text': None,
46
- 'sources_text': None,
47
- 'suggested_questions': None,
48
- 'suggested_questions_title': None,
49
- 'terms_checkbox_text': None,
50
- 'terms_description': None,
51
- 'terms_title': None,
52
- 'welcome_message': None,
53
- }
54
-
55
- def __init__(self, app: Sphinx):
56
- self.app = app
57
- self.setup_options()
58
- self.setup_events()
59
-
60
- @staticmethod
61
- def snake_to_kebab(string):
62
- """Convert snake_case string to kebab-case."""
63
- return string.replace('_', '-')
64
-
65
- def inject_biel_scripts(self, app, pagename, templatename, context, doctree):
66
- version = getattr(app.config, "biel_version", self.DEFAULT_OPTIONS['version'])
67
- biel_js_module = f'''
68
- <script type="module" src="https://cdn.jsdelivr.net/npm/biel-search@{version}/dist/biel-search/biel-search.esm.js"></script>
69
- '''
70
-
71
- # Add Biel JS module to body
72
- context.setdefault('body', '')
73
- context['body'] += biel_js_module
74
-
75
- if getattr(app.config, "biel_button_position", None) != "default":
76
- attribute_pairs = [
77
- f'bielBtn.setAttribute("{self.snake_to_kebab(key)}", "{getattr(app.config, f"biel_{key}")}");'
78
- for key in self.DEFAULT_OPTIONS.keys() if getattr(app.config, f"biel_{key}") is not None
79
- ]
80
- set_attributes_script = "\n ".join(attribute_pairs)
81
-
82
- button_text = getattr(app.config, "biel_button_text", self.DEFAULT_OPTIONS['button_text'])
83
-
84
- biel_script = f'''
85
- <script>
86
- window.addEventListener('DOMContentLoaded', (event) => {{
87
- let bielBtn = document.createElement("biel-button");
88
- bielBtn.innerHTML = "{button_text}";
89
- {set_attributes_script}
90
- document.body.appendChild(bielBtn);
91
- }});
92
- </script>
93
- '''
94
- context['body'] += biel_script
95
-
96
- def setup_options(self):
97
- for key in self.DEFAULT_OPTIONS.keys():
98
- self.app.add_config_value(f'biel_{key}', self.DEFAULT_OPTIONS[key], 'html')
99
-
100
- def setup_events(self):
101
- version = getattr(self.app.config, "biel_version", self.DEFAULT_OPTIONS["version"])
102
- self.app.add_css_file(f'https://cdn.jsdelivr.net/npm/biel-search@{version}/dist/biel-search/biel-search.css')
103
- self.app.connect('html-page-context', self.inject_biel_scripts)
104
-
105
-
106
- def setup(app: Sphinx):
107
- extension = BielExtension(app)
108
- return {
109
- 'version': __version__,
110
- 'parallel_read_safe': True,
111
- 'parallel_write_safe': True,
112
- }
File without changes
File without changes
File without changes
File without changes
File without changes