183 lines
31 KiB
HTML
183 lines
31 KiB
HTML
<!doctype html>
|
||
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><title>Icarus User Guide - CDN Providers - Icarus</title><link rel="manifest" href="/hexo-theme-icarus/manifest.json"><meta name="theme-color" content="#f7f7f7"><meta name="application-name" content="Icaurs - Hexo Theme"><meta name="msapplication-TileImage" content="/img/favicon.svg"><meta name="msapplication-TileColor" content="#f7f7f7"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-title" content="Icaurs - Hexo Theme"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="description" content="Choosing the right CDN providers can significantly reduce the page loading time of your viewers. Icarus lets you pick among several built-in CDN provider options for serving third-party libraries and"><meta property="og:type" content="blog"><meta property="og:title" content="Icarus User Guide - CDN Providers"><meta property="og:url" content="http://ppoffice.github.io/hexo-theme-icarus/Configuration/icarus-user-guide-cdn-providers/"><meta property="og:site_name" content="Icarus"><meta property="og:description" content="Choosing the right CDN providers can significantly reduce the page loading time of your viewers. Icarus lets you pick among several built-in CDN provider options for serving third-party libraries and"><meta property="og:locale" content="en_US"><meta property="og:image" content="http://ppoffice.github.io/hexo-theme-icarus/img/og_image.png"><meta property="article:published_time" content="2017-01-31T00:00:00.000Z"><meta property="article:author" content="PPOffice"><meta property="article:tag" content="Icarus User Guide"><meta property="twitter:card" content="summary"><meta property="twitter:image:src" content="http://ppoffice.github.io/hexo-theme-icarus/img/og_image.png"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"http://ppoffice.github.io/hexo-theme-icarus/Configuration/icarus-user-guide-cdn-providers/"},"headline":"Icarus User Guide - CDN Providers","image":["http://ppoffice.github.io/hexo-theme-icarus/img/og_image.png"],"datePublished":"2017-01-31T00:00:00.000Z","author":{"@type":"Person","name":"PPOffice"},"publisher":{"@type":"Organization","name":"Icarus","logo":{"@type":"ImageObject","url":"http://ppoffice.github.io/img/logo.svg"}},"description":"Choosing the right CDN providers can significantly reduce the page loading time of your viewers. Icarus lets you pick among several built-in CDN provider options for serving third-party libraries and"}</script><link rel="canonical" href="http://ppoffice.github.io/hexo-theme-icarus/Configuration/icarus-user-guide-cdn-providers/"><link rel="icon" href="/hexo-theme-icarus/img/favicon.svg"><link rel="stylesheet" href="https://use.fontawesome.com/releases/v6.0.0/css/all.css"><link data-pjax rel="stylesheet" href="https://cdn.jsdelivr.net/npm/highlight.js@11.7.0/styles/atom-one-light.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;600&family=Source+Code+Pro"><link data-pjax rel="stylesheet" href="/hexo-theme-icarus/css/default.css"><style>body>.footer,body>.navbar,body>.section{opacity:0}</style><!--!--><!--!--><!--!--><!--!--><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/cookieconsent@3.1.1/build/cookieconsent.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/lightgallery@1.10.0/dist/css/lightgallery.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/justifiedGallery@3.8.1/dist/css/justifiedGallery.min.css"><script src="https://www.googletagmanager.com/gtag/js?id=UA-72437521-5" async></script><script>window.dataLayer = window.dataLayer || [];
|
||
function gtag(){dataLayer.push(arguments);}
|
||
gtag('js', new Date());
|
||
|
||
gtag('config', 'UA-72437521-5');</script><!--!--><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/outdatedbrowser@1.1.5/outdatedbrowser/outdatedbrowser.min.css"><style>.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace-inactive{display:none}.pace .pace-progress{background:#3273dc;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px}</style><script src="https://cdn.jsdelivr.net/npm/pace-js@1.2.4/pace.min.js"></script><!--!--><!--!--><!-- hexo injector head_end start --><script>
|
||
(function () {
|
||
function switchTab() {
|
||
if (!location.hash) {
|
||
return;
|
||
}
|
||
|
||
const id = '#' + CSS.escape(location.hash.substring(1));
|
||
const $tabMenu = document.querySelector(`.tabs a[href="${id}"]`);
|
||
if (!$tabMenu) {
|
||
return;
|
||
}
|
||
|
||
const $tabMenuContainer = $tabMenu.parentElement.parentElement;
|
||
Array.from($tabMenuContainer.children).forEach($menu => $menu.classList.remove('is-active'));
|
||
Array.from($tabMenuContainer.querySelectorAll('a'))
|
||
.map($menu => document.getElementById($menu.getAttribute("href").substring(1)))
|
||
.forEach($content => $content.classList.add('is-hidden'));
|
||
|
||
if ($tabMenu) {
|
||
$tabMenu.parentElement.classList.add('is-active');
|
||
}
|
||
const $activeTab = document.querySelector(id);
|
||
if ($activeTab) {
|
||
$activeTab.classList.remove('is-hidden');
|
||
}
|
||
}
|
||
switchTab();
|
||
window.addEventListener('hashchange', switchTab, false);
|
||
})();
|
||
</script><!-- hexo injector head_end end --><meta name="generator" content="Hexo 7.3.0">
|
||
<style>.not-gallery-item { position: relative; display: inline-block; width: 1.2em; min-height: 1.2em; overflow: hidden; vertical-align: top; color: transparent; } .not-gallery-item > span { position: relative; z-index: 10; } .not-gallery-item img, .not-gallery-item .fancybox { margin: 0 !important; padding: 0 !important; border: none !important; outline: none !important; text-decoration: none !important; user-select: none !important; cursor: auto !important; } .not-gallery-item img { height: 1.2em !important; width: 1.2em !important; position: absolute !important; left: 50% !important; top: 50% !important; transform: translate(-50%, -50%) !important; user-select: none !important; cursor: auto !important; } .not-gallery-item-fallback { color: inherit; } .not-gallery-item-fallback img { opacity: 0 !important; }</style>
|
||
<link rel="alternate" href="/hexo-theme-icarus/atom.xml" title="Icarus" type="application/atom+xml">
|
||
</head><body class="is-2-column"><nav class="navbar navbar-main"><div class="container navbar-container"><div class="navbar-brand justify-content-center"><a class="navbar-item navbar-logo" href="/hexo-theme-icarus/"><img src="/hexo-theme-icarus/img/logo.svg" alt="Icarus" height="28"></a></div><div class="navbar-menu"><div class="navbar-start"><a class="navbar-item" href="/hexo-theme-icarus/">Home</a><a class="navbar-item" href="/hexo-theme-icarus/archives">Archives</a><a class="navbar-item" href="/hexo-theme-icarus/categories">Categories</a><a class="navbar-item" href="/hexo-theme-icarus/tags">Tags</a><a class="navbar-item" href="/hexo-theme-icarus/about">About</a></div><div class="navbar-end"><a class="navbar-item" target="_blank" rel="noopener" title="Discuss on GitHub" href="https://github.com/ppoffice/hexo-theme-icarus/discussions"><i class="fas fa-comments"></i></a><a class="navbar-item" target="_blank" rel="noopener" title="Download on GitHub" href="https://github.com/ppoffice/hexo-theme-icarus"><i class="fab fa-github"></i></a><a class="navbar-item is-hidden-tablet catalogue" title="Catalogue" href="javascript:;"><i class="fas fa-list-ul"></i></a><a class="navbar-item search" title="Search" href="javascript:;"><i class="fas fa-search"></i></a></div></div></div></nav><section class="section"><div class="container"><div class="columns"><div class="column order-2 column-main is-8-tablet is-8-desktop is-8-widescreen"><div class="card"><article class="card-content article" role="article"><div class="article-meta is-size-7 is-uppercase level is-mobile"><div class="level-left"><span class="level-item">Posted <time dateTime="2017-01-31T00:00:00.000Z" title="1/31/2017, 12:00:00 AM">2017-01-31</time></span><span class="level-item"><a class="link-muted" href="/hexo-theme-icarus/categories/Configuration/">Configuration</a></span><span class="level-item">4 minutes read (About 613 words)</span></div></div><h1 class="title is-3 is-size-4-mobile">Icarus User Guide - CDN Providers</h1><div class="content"><p>Choosing the right CDN providers can significantly reduce the page loading time of your viewers.
|
||
Icarus lets you pick among several built-in CDN provider options for serving third-party
|
||
libraries and asset files used by Icarus.</p>
|
||
<article class="message message-immersive is-primary">
|
||
<div class="message-body">
|
||
<i class="fas fa-globe-asia mr-2"></i>This article is also available in
|
||
<a href="/hexo-theme-icarus/Configuration/icarus%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97-cdn%E6%8F%90%E4%BE%9B%E5%95%86/">简体中文</a>.
|
||
</div>
|
||
</article>
|
||
|
||
<span id="more"></span>
|
||
|
||
<article class="message message-immersive is-primary">
|
||
<div class="message-body">
|
||
<i class="fas fa-info-circle mr-2"></i>The following CDN functionalities are provided by
|
||
<a target="_blank" rel="noopener" href="https://github.com/ppoffice/hexo-component-inferno">ppoffice/hexo-component-inferno</a>.
|
||
Please refer to it for a complete list of supported providers and their configuration details.
|
||
</div>
|
||
</article>
|
||
|
||
<h2 id="Built-in-CDN-providers"><a href="#Built-in-CDN-providers" class="headerlink" title="Built-in CDN providers"></a>Built-in CDN providers</h2><p>Currently, Icarus offers the following built-in CDN providers:</p>
|
||
<ul>
|
||
<li><strong>CDNs for JavaScript Libraries</strong><ul>
|
||
<li>cdnjs.com (<code>cdnjs</code>)</li>
|
||
<li>jsDelivr (<code>jsdelivr</code>)</li>
|
||
<li>UNPKG (<code>unpkg</code>)</li>
|
||
<li>loli.net (<code>loli</code>)</li>
|
||
</ul>
|
||
</li>
|
||
<li><strong>CDNs for Web Fonts</strong><ul>
|
||
<li>Google Fonts (<code>google</code>)</li>
|
||
<li>loli.net (<code>loli</code>)</li>
|
||
<li>font.im (<code>fontim</code>)</li>
|
||
<li>ustc.edu.cn (<code>ustc</code>)</li>
|
||
</ul>
|
||
</li>
|
||
<li><strong>FontAwesome Font Icon CDNs</strong><ul>
|
||
<li>FontAwesome 5 (<code>fontawesome</code>)</li>
|
||
<li>loli.net (<code>loli</code>)</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p>The default CDN settings are:</p>
|
||
<figure class="highlight yaml"><figcaption><span>_config.icarus.yml</span></figcaption><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">providers:</span></span><br><span class="line"> <span class="attr">cdn:</span> <span class="string">jsdelivr</span></span><br><span class="line"> <span class="attr">fontcdn:</span> <span class="string">google</span></span><br><span class="line"> <span class="attr">iconcdn:</span> <span class="string">fontawesome</span></span><br></pre></td></tr></tbody></table></figure>
|
||
|
||
<h2 id="Custom-CDN-providers"><a href="#Custom-CDN-providers" class="headerlink" title="Custom CDN providers"></a>Custom CDN providers</h2><p>Additionally, you can also custom CDN providers via URL templates.
|
||
The template formats for each type of CDN provider are listed below:</p>
|
||
<h3 id="CDNs-for-JavaScript-Libraries"><a href="#CDNs-for-JavaScript-Libraries" class="headerlink" title="CDNs for JavaScript Libraries"></a>CDNs for JavaScript Libraries</h3><figure class="highlight plaintext"><figcaption><span>CDN URL Template</span></figcaption><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://some.cdn.domain.name/${package}/${version}/${filename}</span><br></pre></td></tr></tbody></table></figure>
|
||
|
||
<p>You need to replace the actual package name, version of the package, and relative file path with <code>${package}</code>,
|
||
<code>${version}</code>, and <code>${filename}</code> placeholders.
|
||
For example, a JavaScript library with the following URL:</p>
|
||
<figure class="highlight plaintext"><figcaption><span>UNPKG CDN URL Example</span></figcaption><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://unpkg.com/d3@5.7.0/dist/d3.min.js</span><br></pre></td></tr></tbody></table></figure>
|
||
|
||
<p>can be generalized to this:</p>
|
||
<figure class="highlight plaintext"><figcaption><span>UNPKG CDN URL Template</span></figcaption><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://unpkg.com/${package}@${version}/${filename}</span><br></pre></td></tr></tbody></table></figure>
|
||
|
||
<p>Some CDN providers may adopt different URL schemes.
|
||
For example, the <code>moment.js</code> library has the URL like this on CDN.js:</p>
|
||
<figure class="highlight plaintext"><figcaption><span>CDN.js CDN URL Example</span></figcaption><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js</span><br></pre></td></tr></tbody></table></figure>
|
||
|
||
<p>while has the following URL on UNPKG:</p>
|
||
<figure class="highlight plaintext"><figcaption><span>UNPKG CDN URL Example</span></figcaption><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://unpkg.com/moment@2.22.2/min/moment.min.js</span><br></pre></td></tr></tbody></table></figure>
|
||
|
||
<p>Therefore, you should be aware of the URL format of your custom CDN provider.
|
||
By default, Icarus will try to pass in the parameter using npm package name and relative file path
|
||
(e.g., <code>moment@2.22.2/min/moment.min.js</code>).
|
||
This npm scheme is used by jsDelivr and UNPKG.
|
||
Otherwise, if you are using a CDN.js like provider, please prepend <code>[cdnjs]</code> to its URL template:</p>
|
||
<figure class="highlight plaintext"><figcaption><span>CDN.js-style URL Template</span></figcaption><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[cdnjs]https://some.cdn.domain.name/${package}/${version}/${filename}</span><br></pre></td></tr></tbody></table></figure>
|
||
|
||
<h3 id="CDNs-for-Web-Fonts"><a href="#CDNs-for-Web-Fonts" class="headerlink" title="CDNs for Web Fonts"></a>CDNs for Web Fonts</h3><p>You can pass in the URL of a Google Font mirror or compatible webfont CDN.
|
||
Icarus depends on the <code>Ubuntu</code>, <code>Oxanium</code>, and <code>Source Code Pro</code> fonts, so make sure your CDN provides those.
|
||
The URL template should have two placeholders for font <code>type</code> (<code>icon</code> or <code>font</code>) and <code>fontname</code>:</p>
|
||
<figure class="highlight plaintext"><figcaption><span>Webfont CDN URL Template</span></figcaption><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://some.google.font.mirror/${type}?family=${fontname}</span><br></pre></td></tr></tbody></table></figure>
|
||
|
||
<h3 id="FontAwesome-Font-Icon-CDNs"><a href="#FontAwesome-Font-Icon-CDNs" class="headerlink" title="FontAwesome Font Icon CDNs"></a>FontAwesome Font Icon CDNs</h3><p>You can pass in the URL to a custom FontAwesome CDN.
|
||
No placeholders are required.
|
||
The provided custom CDN should at lease have FontAwesome 5 icons as some of them are used in this theme.</p>
|
||
<figure class="highlight plaintext"><figcaption><span>Icon Font CDN URL Template</span></figcaption><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">https://custom.fontawesome.mirror/some.stylesheet.css</span><br></pre></td></tr></tbody></table></figure>
|
||
|
||
<p>All of the above should be put in the <code>providers</code> section of the theme configurations:</p>
|
||
<figure class="highlight yaml"><figcaption><span>_config.icarus.yml</span></figcaption><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">providers:</span></span><br><span class="line"> <span class="attr">cdn:</span> <span class="string">'https://some.cdn.domain.name/${package}/${version}/${filename}'</span></span><br><span class="line"> <span class="attr">fontcdn:</span> <span class="string">'https://some.google.font.mirror/${type}?family=${fontname}'</span></span><br><span class="line"> <span class="attr">iconcdn:</span> <span class="string">'https://custom.fontawesome.mirror/some.stylesheet.css'</span></span><br></pre></td></tr></tbody></table></figure>
|
||
|
||
<h2 id="CDN-helper-functions"><a href="#CDN-helper-functions" class="headerlink" title="CDN helper functions"></a>CDN helper functions</h2><p>Three helper functions have been defined to help developers include third-party libraries easily with custom
|
||
CDN support.
|
||
You can check them out at <a target="_blank" rel="noopener" href="https://github.com/ppoffice/hexo-component-inferno/blob/0.2.3/src/hexo/helper/cdn.js">ppoffice/hexo-component-inferno</a>.</p>
|
||
<article class="message message-immersive is-warning">
|
||
<div class="message-body">
|
||
<i class="fas fa-question-circle mr-2"></i>Something wrong with this article?
|
||
Click <a target="_blank" rel="noopener" href="https://github.com/ppoffice/hexo-theme-icarus/edit/site/source/_posts/en/CDN-Providers.md">here</a>
|
||
to submit your revision.
|
||
</div>
|
||
</article>
|
||
</div><div class="article-licensing box"><div class="licensing-title"><p>Icarus User Guide - CDN Providers</p><p><a href="http://ppoffice.github.io/hexo-theme-icarus/Configuration/icarus-user-guide-cdn-providers/">http://ppoffice.github.io/hexo-theme-icarus/Configuration/icarus-user-guide-cdn-providers/</a></p></div><div class="licensing-meta level is-mobile"><div class="level-left"><div class="level-item is-narrow"><div><h6>Author</h6><p>PPOffice</p></div></div><div class="level-item is-narrow"><div><h6>Posted on</h6><p>2017-01-31</p></div></div><div class="level-item is-narrow"><div><h6>Licensed under</h6><p><a class="icons" rel="noopener" target="_blank" title="Creative Commons" href="https://creativecommons.org/"><i class="icon fab fa-creative-commons"></i></a><a class="" rel="noopener" target="_blank" title="CC BY-NC-SA 4.0" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a></p></div></div></div></div></div><div class="article-tags is-size-7 mb-4"><span class="mr-2">#</span><a class="link-muted mr-2" rel="tag" href="/hexo-theme-icarus/tags/Icarus-User-Guide/">Icarus User Guide</a></div><div class="sharethis-inline-share-buttons"></div><script src="//platform-api.sharethis.com/js/sharethis.js#property=5ab6f60ace89f00013641890&product=inline-share-buttons" defer></script></article></div><!--!--><nav class="post-navigation mt-4 level is-mobile"><div class="level-start"><a class="article-nav-prev level level-item link-muted" href="/hexo-theme-icarus/uncategorized/hexo-built-in-tag-helpers/"><i class="level-item fas fa-chevron-left"></i><span class="level-item">Hexo Built-in Tag Helpers</span></a></div><div class="level-end"><a class="article-nav-next level level-item link-muted" href="/hexo-theme-icarus/Plugins/Comment/icarus-user-guide-comment-plugins/"><span class="level-item">Icarus User Guide - Comment Plugins</span><i class="level-item fas fa-chevron-right"></i></a></div></nav><!--!--></div><div class="column column-left is-4-tablet is-4-desktop is-4-widescreen order-1 is-sticky"><div class="card widget" data-type="profile"><div class="card-content"><nav class="level"><div class="level-item has-text-centered flex-shrink-1"><div><figure class="image is-128x128 mx-auto mb-2"><img class="avatar" src="/hexo-theme-icarus/img/avatar.png" alt="PPOffice"></figure><p class="title is-size-4 is-block" style="line-height:inherit;">PPOffice</p><p class="is-size-6 is-block">Web Developer</p><p class="is-size-6 is-flex justify-content-center"><i class="fas fa-map-marker-alt mr-1"></i><span>Earth, Solar System</span></p></div></div></nav><nav class="level is-mobile"><div class="level-item has-text-centered is-marginless"><div><p class="heading">Posts</p><a href="/hexo-theme-icarus/archives/"><p class="title">43</p></a></div></div><div class="level-item has-text-centered is-marginless"><div><p class="heading">Categories</p><a href="/hexo-theme-icarus/categories/"><p class="title">9</p></a></div></div><div class="level-item has-text-centered is-marginless"><div><p class="heading">Tags</p><a href="/hexo-theme-icarus/tags/"><p class="title">4</p></a></div></div></nav><div class="level"><a class="level-item button is-primary is-rounded" href="https://github.com/ppoffice" target="_blank" rel="me noopener">Follow</a></div><div class="level is-mobile is-multiline"><a class="level-item button is-transparent is-marginless" target="_blank" rel="me noopener" title="Github" href="https://github.com/ppoffice"><i class="fab fa-github"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="me noopener" title="Facebook" href="https://facebook.com"><i class="fab fa-facebook"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="me noopener" title="Twitter" href="https://twitter.com"><i class="fab fa-twitter"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="me noopener" title="Dribbble" href="https://dribbble.com"><i class="fab fa-dribbble"></i></a><a class="level-item button is-transparent is-marginless" target="_blank" rel="me noopener" title="RSS" href="/hexo-theme-icarus/"><i class="fas fa-rss"></i></a></div></div></div><div class="card widget" id="toc" data-type="toc"><div class="card-content"><div class="menu"><h3 class="menu-label">Catalogue</h3><ul class="menu-list"><li><a class="level is-mobile" href="#Built-in-CDN-providers"><span class="level-left"><span class="level-item">1</span><span class="level-item">Built-in CDN providers</span></span></a></li><li><a class="level is-mobile" href="#Custom-CDN-providers"><span class="level-left"><span class="level-item">2</span><span class="level-item">Custom CDN providers</span></span></a><ul class="menu-list"><li><a class="level is-mobile" href="#CDNs-for-JavaScript-Libraries"><span class="level-left"><span class="level-item">2.1</span><span class="level-item">CDNs for JavaScript Libraries</span></span></a></li><li><a class="level is-mobile" href="#CDNs-for-Web-Fonts"><span class="level-left"><span class="level-item">2.2</span><span class="level-item">CDNs for Web Fonts</span></span></a></li><li><a class="level is-mobile" href="#FontAwesome-Font-Icon-CDNs"><span class="level-left"><span class="level-item">2.3</span><span class="level-item">FontAwesome Font Icon CDNs</span></span></a></li></ul></li><li><a class="level is-mobile" href="#CDN-helper-functions"><span class="level-left"><span class="level-item">3</span><span class="level-item">CDN helper functions</span></span></a></li></ul></div></div><style>#toc .menu-list > li > a.is-active + .menu-list { display: block; }#toc .menu-list > li > a + .menu-list { display: none; }</style><script src="/hexo-theme-icarus/js/toc.js" defer></script></div><div class="card widget" data-type="categories"><div class="card-content"><div class="menu"><h3 class="menu-label">Categories</h3><ul class="menu-list"><li><a class="level is-mobile" href="/hexo-theme-icarus/categories/Configuration/"><span class="level-start"><span class="level-item">Configuration</span></span><span class="level-end"><span class="level-item tag">4</span></span></a></li><li><a class="level is-mobile" href="/hexo-theme-icarus/categories/Plugins/"><span class="level-start"><span class="level-item">Plugins</span></span><span class="level-end"><span class="level-item tag">12</span></span></a><ul><li><a class="level is-mobile" href="/hexo-theme-icarus/categories/Plugins/Analytics/"><span class="level-start"><span class="level-item">Analytics</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/hexo-theme-icarus/categories/Plugins/Comment/"><span class="level-start"><span class="level-item">Comment</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/hexo-theme-icarus/categories/Plugins/Donation/"><span class="level-start"><span class="level-item">Donation</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/hexo-theme-icarus/categories/Plugins/Other/"><span class="level-start"><span class="level-item">Other</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/hexo-theme-icarus/categories/Plugins/Search/"><span class="level-start"><span class="level-item">Search</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li><li><a class="level is-mobile" href="/hexo-theme-icarus/categories/Plugins/Share/"><span class="level-start"><span class="level-item">Share</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li></ul></li><li><a class="level is-mobile" href="/hexo-theme-icarus/categories/Widgets/"><span class="level-start"><span class="level-item">Widgets</span></span><span class="level-end"><span class="level-item tag">2</span></span></a></li></ul></div></div></div><div class="card widget" data-type="tags"><div class="card-content"><div class="menu"><h3 class="menu-label">Tags</h3><div class="field is-grouped is-grouped-multiline"><div class="control"><a class="tags has-addons" href="/hexo-theme-icarus/tags/Demo/"><span class="tag">Demo</span><span class="tag">19</span></a></div><div class="control"><a class="tags has-addons" href="/hexo-theme-icarus/tags/Getting-Started/"><span class="tag">Getting Started</span><span class="tag">4</span></a></div><div class="control"><a class="tags has-addons" href="/hexo-theme-icarus/tags/Icarus-User-Guide/"><span class="tag">Icarus User Guide</span><span class="tag">12</span></a></div><div class="control"><a class="tags has-addons" href="/hexo-theme-icarus/tags/Icarus%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97/"><span class="tag">Icarus用户指南</span><span class="tag">12</span></a></div></div></div></div></div></div><!--!--></div></div></section><footer class="footer"><div class="container"><div class="level"><div class="level-start"><a class="footer-logo is-block mb-2" href="/hexo-theme-icarus/"><img src="/hexo-theme-icarus/img/logo.svg" alt="Icarus" height="28"></a><p class="is-size-7"><span>© 2025 PPOffice</span> Powered by <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a> & <a href="https://github.com/ppoffice/hexo-theme-icarus" target="_blank" rel="noopener">Icarus</a></p></div><div class="level-end"><div class="field has-addons"><p class="control"><a class="button is-transparent is-large" target="_blank" rel="noopener" title="Creative Commons" href="https://creativecommons.org/"><i class="fab fa-creative-commons"></i></a></p><p class="control"><a class="button is-transparent is-large" target="_blank" rel="noopener" title="Discuss on GitHub" href="https://github.com/ppoffice/hexo-theme-icarus/discussions"><i class="fas fa-comments"></i></a></p><p class="control"><a class="button is-transparent is-large" target="_blank" rel="noopener" title="Download on GitHub" href="https://github.com/ppoffice/hexo-theme-icarus"><i class="fab fa-github"></i></a></p></div></div></div></div></footer><script src="https://cdn.jsdelivr.net/npm/jquery@3.3.1/dist/jquery.min.js"></script><script src="https://cdn.jsdelivr.net/npm/moment@2.22.2/min/moment-with-locales.min.js"></script><script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.4/dist/clipboard.min.js" defer></script><script>moment.locale("en");</script><script>var IcarusThemeSettings = {
|
||
article: {
|
||
highlight: {
|
||
clipboard: true,
|
||
fold: 'unfolded'
|
||
}
|
||
}
|
||
};</script><script data-pjax src="/hexo-theme-icarus/js/column.js"></script><script src="/hexo-theme-icarus/js/animation.js"></script><a id="back-to-top" title="Back to top" href="javascript:;"><i class="fas fa-chevron-up"></i></a><script data-pjax src="/hexo-theme-icarus/js/back_to_top.js" defer></script><!--!--><!--!--><!--!--><script src="https://cdn.jsdelivr.net/npm/cookieconsent@3.1.1/build/cookieconsent.min.js" defer></script><script>window.addEventListener("load", () => {
|
||
window.cookieconsent.initialise({
|
||
type: "info",
|
||
theme: "edgeless",
|
||
static: false,
|
||
position: "bottom-left",
|
||
content: {
|
||
message: "This website uses cookies to improve your experience.",
|
||
dismiss: "Got it!",
|
||
allow: "Allow cookies",
|
||
deny: "Decline",
|
||
link: "Learn more",
|
||
policy: "Cookie Policy",
|
||
href: "https://www.cookiesandyou.com/",
|
||
},
|
||
palette: {
|
||
popup: {
|
||
background: "#edeff5",
|
||
text: "#838391"
|
||
},
|
||
button: {
|
||
background: "#4b81e8"
|
||
},
|
||
},
|
||
});
|
||
});</script><script src="https://cdn.jsdelivr.net/npm/lightgallery@1.10.0/dist/js/lightgallery.min.js" defer></script><script src="https://cdn.jsdelivr.net/npm/justifiedGallery@3.8.1/dist/js/jquery.justifiedGallery.min.js" defer></script><script>window.addEventListener("load", () => {
|
||
if (typeof $.fn.lightGallery === 'function') {
|
||
$('.article').lightGallery({ selector: '.gallery-item' });
|
||
}
|
||
if (typeof $.fn.justifiedGallery === 'function') {
|
||
if ($('.justified-gallery > p > .gallery-item').length) {
|
||
$('.justified-gallery > p > .gallery-item').unwrap();
|
||
}
|
||
$('.justified-gallery').justifiedGallery();
|
||
}
|
||
});</script><!--!--><!--!--><div id="outdated"><h6>Your browser is out-of-date!</h6><p>Update your browser to view this website correctly.&npsb;<a id="btnUpdateBrowser" href="http://outdatedbrowser.com/">Update my browser now </a></p><p class="last"><a href="#" id="btnCloseUpdateBrowser" title="Close">×</a></p></div><script src="https://cdn.jsdelivr.net/npm/outdatedbrowser@1.1.5/outdatedbrowser/outdatedbrowser.min.js" defer></script><script>window.addEventListener("load", function () {
|
||
outdatedBrowser({
|
||
bgColor: '#f25648',
|
||
color: '#ffffff',
|
||
lowerThan: 'object-fit' // display on IE11 or below
|
||
});
|
||
});</script><!--!--><!--!--><!--!--><script data-pjax src="/hexo-theme-icarus/js/main.js" defer></script><div class="searchbox"><div class="searchbox-container"><div class="searchbox-header"><div class="searchbox-input-container"><input class="searchbox-input" type="text" placeholder="Type something..."></div><a class="searchbox-close" href="javascript:;">×</a></div><div class="searchbox-body"></div></div></div><script data-pjax src="/hexo-theme-icarus/js/insight.js" defer></script><script data-pjax>document.addEventListener('DOMContentLoaded', function () {
|
||
loadInsight({"contentUrl":"/hexo-theme-icarus/content.json"}, {"hint":"Type something...","untitled":"(Untitled)","posts":"Posts","pages":"Pages","categories":"Categories","tags":"Tags"});
|
||
});</script></body></html> |