bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

Элемент googlefont блока page для подключения гуглошрифтов на страницу #665

Closed vitkarpov closed 8 years ago

vitkarpov commented 8 years ago

Сделал на проектном уровне переопределения специальный элемент googlefont блока page для асинхронного подключения гуглошрифтов

В bemjson:

    block : 'page',
    head : [
        ...
        { elem : 'css', url : 'index.min.css' },
        { elem : 'googlefont', families: 'PT+Serif:400,700:latin,cyrillic' }
    ]

В результате наложения шаблона для такого элемента в разметке, в секции head, появится:

<script type="text/javascript">
  WebFontConfig = {
    google: { families: [ 'PT+Serif:400,700:latin,cyrillic' ] }
  };
  (function() {
    var wf = document.createElement('script');
    wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
      '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
    wf.type = 'text/javascript';
    wf.async = 'true';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(wf, s);
  })();
</script>

Кто как подключает шрифты? Может нужен такой элемент в стандартной библиотеке?

JiLiZART commented 8 years ago

На самом деле будет круто если вот такой способ http://habrahabr.ru/company/paysto/blog/268771/ появится для загрузки любых шрифтов, не только с google fonts

tadatuta commented 8 years ago

Соглашусь с @JiLiZART с тем, что хочется более общего решения. При этом подключение с google через families может быть просто модификатором универсального блока font. И через опции можно поддержать всякую магию про прелоад, куки и локалсторадж. Такой блок вполне тянет на отдельную полезную библиотеку.

vitkarpov commented 8 years ago

Ага, понятно. Спасибо!