diff --git a/docs/source/examples/hero-box.rst b/docs/source/examples/hero-box.rst index e99b621a7..0ca2d774e 100644 --- a/docs/source/examples/hero-box.rst +++ b/docs/source/examples/hero-box.rst @@ -87,6 +87,11 @@ The ``hero-box`` directive supports the following options: - - - If present, adds vertical padding suitable for content pages. By default (without this flag), the hero box is optimized for landing pages. + * - ``ai_chatbot_id`` + - string + - + - my-chatbot-id + - AI chatbot ID to use for the Ask AI button. Requires the ``search_box`` option to be present. Link resolution --------------- @@ -220,6 +225,29 @@ Results in: :search_box: :content_page: +With custom AI chatbot ID +.......................... + +Using: + +.. code-block:: rst + + .. hero-box:: + :title: Lorem Ipsum + :text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. + :search_box: + :ai_chatbot_id: my-custom-chatbot-id + :content_page: + +Results in: + +.. hero-box:: + :title: Lorem Ipsum + :text: Lorem ipsum dolor sit amet, consectetur adipiscing elit. + :search_box: + :ai_chatbot_id: ddfdo8m94k + :content_page: + With bold button ................. diff --git a/docs/source/index.rst b/docs/source/index.rst index 097146547..b62c76d0c 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -12,10 +12,10 @@ .. hero-box:: :button_icon: icon-github :button_style: bold - :button_url: https://github.com/scylladb/sphinx-scylladb-theme - :button_text: Source code :title: Welcome to ScyllaDB Sphinx Theme documentation :image: /_static/img/mascots-2/docs.svg + :search_box: + :ai_chatbot_id: ddfdo8m94k The documentation toolchain for ScyllaDB projects. diff --git a/extensions/sphinx-multiversion/README.md b/extensions/sphinx-multiversion/README.md index fcb2ae624..798e0aee7 100644 --- a/extensions/sphinx-multiversion/README.md +++ b/extensions/sphinx-multiversion/README.md @@ -58,6 +58,7 @@ See https://github.com/scylladb/sphinx-scylladb-theme/pull/891 The following properties can be defined on a per-version basis. * `rst_prolog` +* `myst_substitutions`: Introduced in 0.3.3 * `exclude_patterns`: Introduced in 0.3.2 ## License diff --git a/extensions/sphinx-multiversion/setup.py b/extensions/sphinx-multiversion/setup.py index ace924141..460b86997 100644 --- a/extensions/sphinx-multiversion/setup.py +++ b/extensions/sphinx-multiversion/setup.py @@ -21,7 +21,7 @@ author="Jan Holthuis", author_email="holthuis.jan@googlemail.com", url="https://holzhaus.github.io/sphinx-multiversion/", - version="0.3.2", + version="0.3.3", install_requires=["sphinx >= 2.1"], license="BSD", packages=["sphinx_multiversion"], diff --git a/extensions/sphinx-multiversion/sphinx_multiversion/__init__.py b/extensions/sphinx-multiversion/sphinx_multiversion/__init__.py index 8d026a392..ce7415900 100644 --- a/extensions/sphinx-multiversion/sphinx_multiversion/__init__.py +++ b/extensions/sphinx-multiversion/sphinx_multiversion/__init__.py @@ -2,7 +2,7 @@ from .main import main from .sphinx import setup -__version__ = "0.3.1" +__version__ = "0.3.3" __all__ = [ "setup", diff --git a/extensions/sphinx-multiversion/sphinx_multiversion/main.py b/extensions/sphinx-multiversion/sphinx_multiversion/main.py index 7888c2f80..c9ace2aff 100644 --- a/extensions/sphinx-multiversion/sphinx_multiversion/main.py +++ b/extensions/sphinx-multiversion/sphinx_multiversion/main.py @@ -308,11 +308,15 @@ def main(argv=None): current_sourcedir = os.path.join(repopath, sourcedir) project = sphinx_project.Project(current_sourcedir, source_suffixes) + + myst_substitutions = getattr(current_config, 'myst_substitutions', {}) + metadata[gitref.name] = { "name": gitref.name, "version": current_config.version, "release": current_config.release, "rst_prolog": current_config.rst_prolog, + "myst_substitutions": myst_substitutions, "exclude_patterns": current_config.exclude_patterns, "is_released": bool( re.match(config.smv_released_pattern, gitref.refname) diff --git a/extensions/sphinx-multiversion/sphinx_multiversion/sphinx.py b/extensions/sphinx-multiversion/sphinx_multiversion/sphinx.py index 75e560ae8..70b7fbe0c 100644 --- a/extensions/sphinx-multiversion/sphinx_multiversion/sphinx.py +++ b/extensions/sphinx-multiversion/sphinx_multiversion/sphinx.py @@ -181,6 +181,7 @@ def config_inited(app, config): config.version = data["version"] config.release = data["release"] config.rst_prolog = data["rst_prolog"] + config.myst_substitutions = data["myst_substitutions"] config.exclude_patterns = data["exclude_patterns"] config.today = old_config.today if not config.today: diff --git a/sphinx_scylladb_theme/extensions/hero_box.py b/sphinx_scylladb_theme/extensions/hero_box.py index 29fac2aa4..a5db78b98 100644 --- a/sphinx_scylladb_theme/extensions/hero_box.py +++ b/sphinx_scylladb_theme/extensions/hero_box.py @@ -24,6 +24,7 @@ class HeroBox(Directive): "button_text": directives.path, "search_box": directives.flag, "content_page": directives.flag, + "ai_chatbot_id": directives.unchanged, } def run(self): @@ -88,18 +89,34 @@ def run(self): ) has_search_box = "search_box" in self.options - search_box = ( - generate_template( + + ai_chatbot_id = self.options.get("ai_chatbot_id") + + ask_ai_section = "" + if ai_chatbot_id: + ask_ai_section = """ +
-1)o&&o.push(r);else if(u=mt(r),s=St(f.appendChild(r),"script"),u&&Et(s),n)for(c=0;r=s[c++];)xt.test(r.type||"")&&n.push(r);return f}var At=/^([^.]*)(?:\.(.+)|)/;function Dt(){return!0}function Rt(){return!1}function Lt(t,e,n,i,o,r){var s,a;if("object"==typeof e){for(a in"string"!=typeof n&&(i=i||n,n=void 0),e)Lt(t,a,n,i,e[a],r);return t}if(null==i&&null==o?(o=n,i=n=void 0):null==o&&("string"==typeof n?(o=i,i=void 0):(o=i,i=n,n=void 0)),!1===o)o=Rt;else if(!o)return t;return 1===r&&(s=o,o=function(t){return O().off(t),s.apply(this,arguments)},o.guid=s.guid||(s.guid=O.guid++)),t.each((function(){O.event.add(this,e,o,i,n)}))}function Mt(t,e,n){n?(at.set(t,e,!1),O.event.add(t,e,{namespace:!1,handler:function(t){var n,i=at.get(this,e);if(1&t.isTrigger&&this[e]){if(i)(O.event.special[e]||{}).delegateType&&t.stopPropagation();else if(i=a.call(arguments),at.set(this,e,i),this[e](),n=at.get(this,e),at.set(this,e,!1),i!==n)return t.stopImmediatePropagation(),t.preventDefault(),n}else i&&(at.set(this,e,O.event.trigger(i[0],i.slice(1),this)),t.stopPropagation(),t.isImmediatePropagationStopped=Dt)}})):void 0===at.get(t,e)&&O.event.add(t,e,Dt)}O.event={global:{},add:function(t,e,n,i,o){var r,s,a,l,u,c,f,d,h,p,v,m=at.get(t);if(rt(t))for(n.handler&&(n=(r=n).handler,o=r.selector),o&&O.find.matchesSelector(vt,o),n.guid||(n.guid=O.guid++),(l=m.events)||(l=m.events=Object.create(null)),(s=m.handle)||(s=m.handle=function(e){return void 0!==O&&O.event.triggered!==e.type?O.event.dispatch.apply(t,arguments):void 0}),u=(e=(e||"").match(G)||[""]).length;u--;)h=v=(a=At.exec(e[u])||[])[1],p=(a[2]||"").split(".").sort(),h&&(f=O.event.special[h]||{},h=(o?f.delegateType:f.bindType)||h,f=O.event.special[h]||{},c=O.extend({type:h,origType:v,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&O.expr.match.needsContext.test(o),namespace:p.join(".")},r),(d=l[h])||((d=l[h]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,i,p,s)||t.addEventListener&&t.addEventListener(h,s)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),o?d.splice(d.delegateCount++,0,c):d.push(c),O.event.global[h]=!0)},remove:function(t,e,n,i,o){var r,s,a,l,u,c,f,d,h,p,v,m=at.hasData(t)&&at.get(t);if(m&&(l=m.events)){for(u=(e=(e||"").match(G)||[""]).length;u--;)if(h=v=(a=At.exec(e[u])||[])[1],p=(a[2]||"").split(".").sort(),h){for(f=O.event.special[h]||{},d=l[h=(i?f.delegateType:f.bindType)||h]||[],a=a[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=r=d.length;r--;)c=d[r],!o&&v!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||i&&i!==c.selector&&("**"!==i||!c.selector)||(d.splice(r,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(t,c));s&&!d.length&&(f.teardown&&!1!==f.teardown.call(t,p,m.handle)||O.removeEvent(t,h,m.handle),delete l[h])}else for(h in l)O.event.remove(t,h+e[u],n,i,!0);O.isEmptyObject(l)&&at.remove(t,"handle events")}},dispatch:function(t){var e,n,i,o,r,s,a=new Array(arguments.length),l=O.event.fix(t),u=(at.get(this,"events")||Object.create(null))[l.type]||[],c=O.event.special[l.type]||{};for(a[0]=l,e=1;e1)},removeAttr:function(t){return this.each((function(){O.removeAttr(this,t)}))}}),O.extend({attr:function(t,e,n){var i,o,r=t.nodeType;if(3!==r&&8!==r&&2!==r)return void 0===t.getAttribute?O.prop(t,e,n):(1===r&&O.isXMLDoc(t)||(o=O.attrHooks[e.toLowerCase()]||(O.expr.match.bool.test(e)?ke:void 0)),void 0!==n?null===n?void O.removeAttr(t,e):o&&"set"in o&&void 0!==(i=o.set(t,n,e))?i:(t.setAttribute(e,n+""),n):o&&"get"in o&&null!==(i=o.get(t,e))?i:null==(i=O.find.attr(t,e))?void 0:i)},attrHooks:{type:{set:function(t,e){if(!m.radioValue&&"radio"===e&&x(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,i=0,o=e&&e.match(G);if(o&&1===t.nodeType)for(;n=o[i++];)t.removeAttribute(n)}}),ke={set:function(t,e,n){return!1===e?O.removeAttr(t,n):t.setAttribute(n,n),n}},O.each(O.expr.match.bool.source.match(/\w+/g),(function(t,e){var n=je[e]||O.find.attr;je[e]=function(t,e,i){var o,r,s=e.toLowerCase();return i||(r=je[s],je[s]=o,o=null!=n(t,e,i)?s:null,je[s]=r),o}}));var _e=/^(?:input|select|textarea|button)$/i,$e=/^(?:a|area)$/i;function Oe(t){return(t.match(G)||[]).join(" ")}function Ce(t){return t.getAttribute&&t.getAttribute("class")||""}function xe(t){return Array.isArray(t)?t:"string"==typeof t&&t.match(G)||[]}O.fn.extend({prop:function(t,e){return tt(this,O.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each((function(){delete this[O.propFix[t]||t]}))}}),O.extend({prop:function(t,e,n){var i,o,r=t.nodeType;if(3!==r&&8!==r&&2!==r)return 1===r&&O.isXMLDoc(t)||(e=O.propFix[e]||e,o=O.propHooks[e]),void 0!==n?o&&"set"in o&&void 0!==(i=o.set(t,n,e))?i:t[e]=n:o&&"get"in o&&null!==(i=o.get(t,e))?i:t[e]},propHooks:{tabIndex:{get:function(t){var e=O.find.attr(t,"tabindex");return e?parseInt(e,10):_e.test(t.nodeName)||$e.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),m.optSelected||(O.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),O.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){O.propFix[this.toLowerCase()]=this})),O.fn.extend({addClass:function(t){var e,n,i,o,r,s;return y(t)?this.each((function(e){O(this).addClass(t.call(this,e,Ce(this)))})):(e=xe(t)).length?this.each((function(){if(i=Ce(this),n=1===this.nodeType&&" "+Oe(i)+" "){for(r=0;r