77from docutils import nodes
88from docutils .parsers .rst import directives
99from sphinx .application import Sphinx
10+ from sphinx .util import logging
1011from sphinx .util .docutils import SphinxDirective , SphinxRole
1112
1213from . import compiled
14+ from .shared import WARNING_TYPE
15+
16+ logger = logging .getLogger (__name__ )
1317
1418OCTICON_VERSION = "v16.1.1"
1519
@@ -35,9 +39,9 @@ def setup_icons(app: Sphinx) -> None:
3539 fontawesome ,
3640 html = (visit_fontawesome_html , depart_fontawesome_html ),
3741 latex = (visit_fontawesome_latex , None ),
38- text = ( None , None ),
39- man = ( None , None ),
40- texinfo = (None , None ),
42+ man = ( visit_fontawesome_warning , None ),
43+ text = ( visit_fontawesome_warning , None ),
44+ texinfo = (visit_fontawesome_warning , None ),
4145 )
4246
4347
@@ -207,8 +211,29 @@ def add_fontawesome_pkg(app, config):
207211
208212
209213def visit_fontawesome_latex (self , node ):
214+ """Add latex fonteawesome icon, if configured, else warn."""
210215 if self .config .sd_fontawesome_latex :
211- self .body .append (f"\\ faicon{{{ node ['icon_name' ]} }}" )
216+ self .body .append (f"\\ faicon{{{ node ['icon' ]} }}" )
217+ else :
218+ logger .warning (
219+ "Fontawesome icons not included in LaTeX output, "
220+ f"consider 'sd_fontawesome_latex=True' [{ WARNING_TYPE } .fa-build]" ,
221+ location = node ,
222+ type = WARNING_TYPE ,
223+ subtype = "fa-build" ,
224+ )
225+ raise nodes .SkipNode
226+
227+
228+ def visit_fontawesome_warning (self , node : nodes .Element ) -> None :
229+ """Warn that fontawesome is not supported for this builder."""
230+ logger .warning (
231+ "Fontawesome icons not supported for builder: "
232+ f"{ self .builder .name } [{ WARNING_TYPE } .fa-build]" ,
233+ location = node ,
234+ type = WARNING_TYPE ,
235+ subtype = "fa-build" ,
236+ )
212237 raise nodes .SkipNode
213238
214239
0 commit comments