mdBook icon indicating copy to clipboard operation
mdBook copied to clipboard

Local fallback for CDN hosted ressources

Open azerupi opened this issue 9 years ago • 17 comments

  • [x] Font Awesome
  • [x] Google Fonts (Open Sans) Edit: maybe not that important, other (similar) fonts will be used instead
  • [x] JQuery
  • [ ] MathJax

Are loaded from CDN's but should have a local fallback for offline use and for when the CDN is down.

azerupi avatar Sep 05 '15 19:09 azerupi

MathJax seems like a lot of files, currently not easily embeddable into the binary (as far as I know)..

JQuery and Font Awesome where the most important ones. I will therefore remove this issue from 0.0.2 milestone. Leave it like this until a better solution is found.

azerupi avatar Sep 17 '15 22:09 azerupi

FYI: MathJax CDN is shutting down. Might want to switch to CDNJS in the meantime.

Rufflewind avatar Apr 02 '17 01:04 Rufflewind

It would be good to add an option to disable remote loading completely. We have all of this stuff in Debian and would ideally just point to the local files. At the moment we have to carry patches in rustc instead.

infinity0 avatar May 15 '17 22:05 infinity0

One primary benefit of loading this stuff locally, is that my ISP really doesn't need to know when I'm reading rust documentation. :/

infinity0 avatar May 15 '17 22:05 infinity0

@infinity0 You mean when you are reading the docs locally? Indeed the CDN thing is only an improvement when loading from a remote source. I am not sure how I could differentiate the two use cases though?

azerupi avatar May 15 '17 22:05 azerupi

Perhaps it could read a mdbook.toml file that lets you define alternate local URLs for these resources? Or, get them from an environment variable.

infinity0 avatar May 15 '17 22:05 infinity0

Do you want to deactivate the CDN completely everywhere?

azerupi avatar May 15 '17 22:05 azerupi

Yeah, that would be nice. We have them available locally in various subdirectories of /usr/share/fonts and /usr/share/javascript, though I can't speak for other distros.

infinity0 avatar May 15 '17 22:05 infinity0

I have made a new issue #271. Feel free to comment there :)

azerupi avatar May 15 '17 23:05 azerupi

Great, thanks!

infinity0 avatar May 15 '17 23:05 infinity0

Thanks for working on this issue!

Is there a setting that allows me to deactivate CDN usage? Can I host all dependencies in the build folder?

anderejd avatar Mar 12 '18 16:03 anderejd

I ran into an issue with a poor WiFi connection on the train the other day. The Rust Book was slow to load pages in what I thought was offline mode using rustup doc --book. The cause was the need to load the Google fonts which I did not have cached. When they were downloaded things improved, but the experience before that was frustrating.

I don't know what the size of the font files is and I suspect they're too large to embed in a binary, but I think there's a way to write it so a default browser font is loaded first and the Google font gets used if it's eventually downloaded.

reillysiemens avatar May 12 '18 20:05 reillysiemens

I had a very similar problem as @reillysiemens. I was in a situation where I didn't have any internet connectivity. I noticed the page was (roughly) blocked on resolving fonts.googleapis.com, so I added a link-local entry in my /etc/hosts for that domain (so the resolution completed, at least - then the fetch failed quickly). Would treating the fonts.googleapis.com resources in a similar way as the google_analytics be acceptable? With this, I mean can the font.googleapis.com resources be conditionally included using a similar conditional? I'm guessing the page is nicer/prettier when using the Google fonts, but they don't seem to be a requirement.

sysrqb avatar Jun 11 '18 02:06 sysrqb

Just adding my vote for offline support. Hit this yesterday while on the train. I really like how the Rust docs are readable locally and often read them that way, but I hadn't tested this in a truly offline situation until now.

jkarneges avatar Jun 13 '18 16:06 jkarneges

Would it be possible to add an option when generating that simply disables those external stylesheets so default fonts are used?

oyvindln avatar Jul 06 '19 14:07 oyvindln

@oyvindln Fallback of font family is a standard strategy with CSS. So that seems unneeded.

sanmai-NL avatar Nov 09 '20 13:11 sanmai-NL

Local fallback for MathJax added in #1918. Review, please.

podsvirov avatar Feb 28 '23 21:02 podsvirov