Show FFML-processed text in the documentation widget instead of the markup.

This commit is contained in:
Charles Haley 2025-07-22 12:24:58 +01:00
parent 4e66d2fff6
commit 1aaedb60f4

View File

@ -13,6 +13,7 @@ from calibre.gui2.dialogs.template_dialog import TemplateDialog
from calibre.gui2.preferences import AbortInitialize, ConfigWidgetBase, test_widget from calibre.gui2.preferences import AbortInitialize, ConfigWidgetBase, test_widget
from calibre.gui2.preferences.template_functions_ui import Ui_Form from calibre.gui2.preferences.template_functions_ui import Ui_Form
from calibre.gui2.widgets import PythonHighlighter from calibre.gui2.widgets import PythonHighlighter
from calibre.utils.ffml_processor import FFMLProcessor
from calibre.utils.formatter_functions import ( from calibre.utils.formatter_functions import (
StoredObjectType, StoredObjectType,
compile_user_function, compile_user_function,
@ -31,6 +32,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
def genesis(self, gui): def genesis(self, gui):
self.gui = gui self.gui = gui
self.db = gui.library_view.model().db self.db = gui.library_view.model().db
self.ffml = FFMLProcessor()
help_text = _(''' help_text = _('''
<p>Here you can add and remove functions used in template processing. A <p>Here you can add and remove functions used in template processing. A
@ -387,7 +389,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
return return
func = self.funcs[txt] func = self.funcs[txt]
self.argument_count.setValue(func.arg_count) self.argument_count.setValue(func.arg_count)
self.documentation.setText(func.doc) self.documentation.setHtml(self.ffml.document_to_html(func.doc, txt))
if txt in self.builtins: if txt in self.builtins:
if hasattr(func, 'program_text') and func.program_text: if hasattr(func, 'program_text') and func.program_text:
self.program.setPlainText(func.program_text) self.program.setPlainText(func.program_text)