On Wed, Aug 19, 2020, 2:49 AM Juna Luzi <[email protected]> wrote:

> I've been stuck on this for the last two days. This helped a lot @Komiya
> Takeshi.
>
> On Wednesday, November 21, 2018 at 6:01:59 PM UTC+1, Komiya Takeshi wrote:
>>
>> Hi,
>>
>> I guess your goal is copying CSS files properly, not modifying config
>> object. Hence it is better to provide a way to copy them easily.
>> Is this right?
>>
>> At present, you can do it with following code:
>>
>> ```
>> from sphinx.util.fileutil import copy_asset
>>
>> def copy_asset_files(app, exc):
>>     asset_files = [...]
>>     if exc is None:  # build succeeded
>>         for path in asset_files:
>>             copy_asset(path, os.path.join(app.outdir, '_static'))
>>
>> def setup(app):
>>     app.connect('build-finished', copy_asset_files)
>> ```
>>
>> I think this code is enough simple. What do you think? Would you like
>> to add another API to do that?
>>
>> Thanks,
>> Takeshi KOMIYA
>> 2018年11月19日(月) 2:42 Vladimir Goncharov <[email protected]>:
>> >
>> > Hello!
>> >
>> > (This is a continuation of
>> https://github.com/sphinx-doc/sphinx/issues/1379)
>> >
>> > I'm developing an extension for drawing railroad diagrams in svg. So
>> there's a css file with default styles for diagrams which I'd like to see
>> included on every page that uses functionality of my plugin. I, however,
>> was not able to find any API for doing this.
>> >
>> > I'm looking for a solution that:
>> >
>> > will not require user to adjust 'html_static_path' in theirs conf.py.
>> That is, including my extension to the 'extensions' list should be enough
>> for it to work;
>> > will allow user to override the default stylesheet by providing their
>> own one;
>> > (optionally) will only include my css to the pages that actually use
>> directives from my plugin.
>> >
>> > Public API don't do what I want it to do:
>> >
>> > 'app.add_stylesheet' requires that "the filename must be relative to
>> the HTML static path, or a full URI with scheme". Naturally, none of my
>> extension's directory are on HTML static path, thus calling
>> 'app.add_stylesheet' is not enough by itself;
>> > modifying 'app.config.html_static_path' from the setup function of my
>> extension only works if user have not redefined 'html_static_path' in
>> theirs conf.py. This happens because variables from conf.py override
>> default config variables after all extensions re loaded;
>> > modifying 'app.config._raw_config['html_static_path']' does exactly
>> what I want, however, '_raw_config' is not part of the public API;
>> > modifying 'app.config.html_static_path' from 'builder-inited' hook
>> seems to work (that's how exhale does this) but Shimizukawa suggests that
>> extensions should not modify 'app.config'.
>> >
>> > So, there seem to be no way to add custom stylesheets and javascript
>> files from extensions properly.
>> >
>> > I propose either developing an official API for this or stating that
>> modifying 'app.config' from 'builder-inited' is fine (or maybe we should
>> use 'config-inited' for this?) and documenting this usage.
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups "sphinx-users" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an email to [email protected].
>> > To post to this group, send email to [email protected].
>> > Visit this group at https://groups.google.com/group/sphinx-users.
>> > For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "sphinx-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sphinx-users/fb35f626-94ae-4c18-98ea-0c600d4aa6d8o%40googlegroups.com
> <https://groups.google.com/d/msgid/sphinx-users/fb35f626-94ae-4c18-98ea-0c600d4aa6d8o%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"sphinx-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sphinx-users/CAELGjd_TAd3LPp5r7QXfHjqbG3Q2%2B%2B3zapMoi6nUv2CpR0dGew%40mail.gmail.com.

Reply via email to