From 5a73c800e0a1174e366aa325edace62365f057ad Mon Sep 17 00:00:00 2001 From: James <87931905+jmestxr@users.noreply.github.com> Date: Mon, 23 Oct 2023 17:56:37 +0800 Subject: [PATCH] Optimize loading of icon asset files (#2357) --- .../layouts/simpleLayoutWithIcons.md | 27 ++++ .../layouts/simpleLayoutWithoutIcons.md | 25 ++++ .../test_site/expected/bugs/index.html | 2 - .../functional/test_site/expected/index.html | 2 - .../test_site/expected/siteData.json | 30 ++++ .../test_site/expected/sub_site/index.html | 2 - .../sub_site/nested_sub_site/index.html | 2 - .../testNunjucksPathResolving.html | 2 - .../sub_site/testNunjucksPathResolving.html | 2 - .../testAltFrontMatterInvalidKeyValue.html | 2 - .../expected/testAltFrontMatterParsing.html | 2 - .../expected/testAnchorGeneration.html | 2 - .../test_site/expected/testAnnotate.html | 2 - .../expected/testAntiFOUCStyles.html | 2 - .../test_site/expected/testCenterText.html | 2 - .../test_site/expected/testCodeBlocks.html | 2 - .../test_site/expected/testDates.html | 2 - .../expected/testEmptyAltFrontMatter.html | 2 - .../expected/testEmptyFrontmatter.html | 2 - .../expected/testExternalScripts.html | 2 - .../expected/testFontAwesomeInPage.html | 124 ++++++++++++++++ .../testFontAwesomeInPage.page-vue-render.js | 19 +++ .../expected/testGlyphiconInPage.html | 121 ++++++++++++++++ .../testGlyphiconInPage.page-vue-render.js | 19 +++ .../functional/test_site/expected/testHr.html | 2 - .../expected/testIconsInSiteLayout.html | 123 ++++++++++++++++ .../testIconsInSiteLayout.page-vue-render.js | 19 +++ .../test_site/expected/testImages.html | 2 - .../expected/testIncludeBoilerplate.html | 2 - .../expected/testIncludeMultipleModals.html | 2 - .../expected/testIncludePluginsRendered.html | 2 - .../test_site/expected/testLayouts.html | 2 - .../expected/testLayoutsOverride.html | 2 - ...testLayoutsOverrideWithAltFrontmatter.html | 2 - .../testLayoutsWithAltFrontMatter.html | 2 - .../test_site/expected/testLinks.html | 2 - .../test_site/expected/testList.html | 2 - .../expected/testMaterialIconsInPage.html | 119 ++++++++++++++++ ...testMaterialIconsInPage.page-vue-render.js | 22 +++ .../test_site/expected/testMath.html | 2 - .../test_site/expected/testModals.html | 2 - .../expected/testNunjucksPathResolving.html | 2 - .../test_site/expected/testOcticonInPage.html | 132 ++++++++++++++++++ .../testOcticonInPage.page-vue-render.js | 19 +++ .../test_site/expected/testPageNav.html | 2 - .../test_site/expected/testPageNavPrint.html | 2 - .../test_site/expected/testPageNavTarget.html | 2 - .../expected/testPageNavWithOnlyTitle.html | 2 - ...testPageNavWithoutTitleAndNavHeadings.html | 2 - .../expected/testPanelMarkdownParsing.html | 2 - .../test_site/expected/testPanels.html | 2 - .../expected/testPanelsClosingTransition.html | 2 - .../test_site/expected/testPlantUML.html | 2 - .../expected/testPopoverTrigger.html | 2 - .../test_site/expected/testPopovers.html | 2 - .../expected/testSingleAltFrontMatter.html | 2 - .../test_site/expected/testThumbnails.html | 2 - .../expected/testTooltipSpacing.html | 2 - .../test_site/expected/testTree.html | 2 - .../expected/testVariableContainsInclude.html | 2 - .../expected/testWeb3FormPlugin.html | 2 - .../test_site/expected/test_md_fragment.html | 2 - .../cli/test/functional/test_site/site.json | 20 +++ .../test_site/testFontAwesomeInPage.md | 16 +++ .../test_site/testGlyphiconInPage.md | 10 ++ .../test_site/testIconsInSiteLayout.md | 8 ++ .../test_site/testMaterialIconsInPage.md | 10 ++ .../functional/test_site/testOcticonInPage.md | 18 +++ .../expected/index.html | 2 - .../test_basic_convert/expected/404.html | 3 - .../test_basic_convert/expected/Home.html | 3 - .../test_basic_convert/expected/Page-1.html | 3 - .../test_basic_convert/expected/_Footer.html | 3 - .../test_basic_convert/expected/_Sidebar.html | 3 - .../test_basic_convert/expected/about.html | 3 - .../expected/contents/topic1.html | 3 - .../expected/contents/topic2.html | 3 - .../expected/contents/topic3a.html | 3 - .../expected/contents/topic3b.html | 3 - .../test_basic_convert/expected/index.html | 3 - .../test_navigation_convert/expected/404.html | 3 - .../expected/Home.html | 3 - .../expected/Page-1.html | 3 - .../expected/README.html | 3 - .../expected/about.html | 3 - .../expected/contents/topic1.html | 3 - .../expected/contents/topic2.html | 3 - .../expected/contents/topic3a.html | 3 - .../expected/contents/topic3b.html | 3 - .../expected/index.html | 3 - .../expected/test_folder/extra_1.html | 3 - .../expected/test_folder/extra_2.html | 3 - .../expected/test_folder/extra_3.html | 3 - .../expected/index.html | 3 - .../test_default/expected/404.html | 4 - .../expected/contents/topic1.html | 2 - .../expected/contents/topic2.html | 2 - .../expected/contents/topic3a.html | 2 - .../expected/contents/topic3b.html | 2 - .../test_default/expected/index.html | 2 - .../test_minimal/expected/index.html | 3 - packages/core/src/Page/PageConfig.ts | 8 +- packages/core/src/Page/index.ts | 37 ++++- packages/core/src/Page/page.njk | 10 +- .../test/unit/Page/filterIconAssets.test.js | 78 +++++++++++ 105 files changed, 1002 insertions(+), 204 deletions(-) create mode 100644 packages/cli/test/functional/test_site/_markbind/layouts/simpleLayoutWithIcons.md create mode 100644 packages/cli/test/functional/test_site/_markbind/layouts/simpleLayoutWithoutIcons.md create mode 100644 packages/cli/test/functional/test_site/expected/testFontAwesomeInPage.html create mode 100644 packages/cli/test/functional/test_site/expected/testFontAwesomeInPage.page-vue-render.js create mode 100644 packages/cli/test/functional/test_site/expected/testGlyphiconInPage.html create mode 100644 packages/cli/test/functional/test_site/expected/testGlyphiconInPage.page-vue-render.js create mode 100644 packages/cli/test/functional/test_site/expected/testIconsInSiteLayout.html create mode 100644 packages/cli/test/functional/test_site/expected/testIconsInSiteLayout.page-vue-render.js create mode 100644 packages/cli/test/functional/test_site/expected/testMaterialIconsInPage.html create mode 100644 packages/cli/test/functional/test_site/expected/testMaterialIconsInPage.page-vue-render.js create mode 100644 packages/cli/test/functional/test_site/expected/testOcticonInPage.html create mode 100644 packages/cli/test/functional/test_site/expected/testOcticonInPage.page-vue-render.js create mode 100644 packages/cli/test/functional/test_site/testFontAwesomeInPage.md create mode 100644 packages/cli/test/functional/test_site/testGlyphiconInPage.md create mode 100644 packages/cli/test/functional/test_site/testIconsInSiteLayout.md create mode 100644 packages/cli/test/functional/test_site/testMaterialIconsInPage.md create mode 100644 packages/cli/test/functional/test_site/testOcticonInPage.md create mode 100644 packages/core/test/unit/Page/filterIconAssets.test.js diff --git a/packages/cli/test/functional/test_site/_markbind/layouts/simpleLayoutWithIcons.md b/packages/cli/test/functional/test_site/_markbind/layouts/simpleLayoutWithIcons.md new file mode 100644 index 0000000000..3470bd4ff2 --- /dev/null +++ b/packages/cli/test/functional/test_site/_markbind/layouts/simpleLayoutWithIcons.md @@ -0,0 +1,27 @@ + + + + + + + + + + +
+ +
+ + {{ content }} +
+ +
diff --git a/packages/cli/test/functional/test_site/_markbind/layouts/simpleLayoutWithoutIcons.md b/packages/cli/test/functional/test_site/_markbind/layouts/simpleLayoutWithoutIcons.md new file mode 100644 index 0000000000..2232729489 --- /dev/null +++ b/packages/cli/test/functional/test_site/_markbind/layouts/simpleLayoutWithoutIcons.md @@ -0,0 +1,25 @@ + + + + + + + + + + +
+ +
+ + {{ content }} +
+ +
diff --git a/packages/cli/test/functional/test_site/expected/bugs/index.html b/packages/cli/test/functional/test_site/expected/bugs/index.html index 8d7bb7ab30..12e498300c 100644 --- a/packages/cli/test/functional/test_site/expected/bugs/index.html +++ b/packages/cli/test/functional/test_site/expected/bugs/index.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/index.html b/packages/cli/test/functional/test_site/expected/index.html index 5862c8329b..a9dae67bf9 100644 --- a/packages/cli/test/functional/test_site/expected/index.html +++ b/packages/cli/test/functional/test_site/expected/index.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/siteData.json b/packages/cli/test/functional/test_site/expected/siteData.json index b3c7a54479..2ec4536736 100644 --- a/packages/cli/test/functional/test_site/expected/siteData.json +++ b/packages/cli/test/functional/test_site/expected/siteData.json @@ -421,6 +421,36 @@ "title": "web 3 forms", "headings": {}, "headingKeywords": {} + }, + { + "src": "testFontAwesomeInPage.md", + "title": "font-awesome icon in page, only font-awesome stylesheet should be loaded", + "headings": {}, + "headingKeywords": {} + }, + { + "src": "testGlyphiconInPage.md", + "title": "glyphicon icon in page, only glyphicon stylesheet should be loaded", + "headings": {}, + "headingKeywords": {} + }, + { + "src": "testMaterialIconsInPage.md", + "title": "material-icons icon in page, only material-icons stylesheet should be loaded", + "headings": {}, + "headingKeywords": {} + }, + { + "src": "testOcticonInPage.md", + "title": "octicon icon in page, only octicon stylesheet should be loaded", + "headings": {}, + "headingKeywords": {} + }, + { + "src": "testIconsInSiteLayout.md", + "title": "glyphicon & octicon icon in page, only glyphicon & octicon stylesheets should be loaded", + "headings": {}, + "headingKeywords": {} } ] } diff --git a/packages/cli/test/functional/test_site/expected/sub_site/index.html b/packages/cli/test/functional/test_site/expected/sub_site/index.html index dfa04ab119..66fe3e87c6 100644 --- a/packages/cli/test/functional/test_site/expected/sub_site/index.html +++ b/packages/cli/test/functional/test_site/expected/sub_site/index.html @@ -13,8 +13,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/index.html b/packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/index.html index 98062ecbce..05134e3598 100644 --- a/packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/index.html +++ b/packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/index.html @@ -13,8 +13,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/testNunjucksPathResolving.html b/packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/testNunjucksPathResolving.html index f921b4c541..d58f9f83aa 100644 --- a/packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/testNunjucksPathResolving.html +++ b/packages/cli/test/functional/test_site/expected/sub_site/nested_sub_site/testNunjucksPathResolving.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/sub_site/testNunjucksPathResolving.html b/packages/cli/test/functional/test_site/expected/sub_site/testNunjucksPathResolving.html index f921b4c541..d58f9f83aa 100644 --- a/packages/cli/test/functional/test_site/expected/sub_site/testNunjucksPathResolving.html +++ b/packages/cli/test/functional/test_site/expected/sub_site/testNunjucksPathResolving.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testAltFrontMatterInvalidKeyValue.html b/packages/cli/test/functional/test_site/expected/testAltFrontMatterInvalidKeyValue.html index 99eaad13d9..b638d0c57d 100644 --- a/packages/cli/test/functional/test_site/expected/testAltFrontMatterInvalidKeyValue.html +++ b/packages/cli/test/functional/test_site/expected/testAltFrontMatterInvalidKeyValue.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testAltFrontMatterParsing.html b/packages/cli/test/functional/test_site/expected/testAltFrontMatterParsing.html index d9cb6d2da3..10ec85b3ab 100644 --- a/packages/cli/test/functional/test_site/expected/testAltFrontMatterParsing.html +++ b/packages/cli/test/functional/test_site/expected/testAltFrontMatterParsing.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testAnchorGeneration.html b/packages/cli/test/functional/test_site/expected/testAnchorGeneration.html index a685f82f3e..36bc2a3555 100644 --- a/packages/cli/test/functional/test_site/expected/testAnchorGeneration.html +++ b/packages/cli/test/functional/test_site/expected/testAnchorGeneration.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testAnnotate.html b/packages/cli/test/functional/test_site/expected/testAnnotate.html index 0b3f707536..fcb4a93891 100644 --- a/packages/cli/test/functional/test_site/expected/testAnnotate.html +++ b/packages/cli/test/functional/test_site/expected/testAnnotate.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testAntiFOUCStyles.html b/packages/cli/test/functional/test_site/expected/testAntiFOUCStyles.html index 9108575677..2944a16838 100644 --- a/packages/cli/test/functional/test_site/expected/testAntiFOUCStyles.html +++ b/packages/cli/test/functional/test_site/expected/testAntiFOUCStyles.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testCenterText.html b/packages/cli/test/functional/test_site/expected/testCenterText.html index d3e659b54e..99eda6a4fa 100644 --- a/packages/cli/test/functional/test_site/expected/testCenterText.html +++ b/packages/cli/test/functional/test_site/expected/testCenterText.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testCodeBlocks.html b/packages/cli/test/functional/test_site/expected/testCodeBlocks.html index 8b3fe7c17b..56d7bb795d 100644 --- a/packages/cli/test/functional/test_site/expected/testCodeBlocks.html +++ b/packages/cli/test/functional/test_site/expected/testCodeBlocks.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testDates.html b/packages/cli/test/functional/test_site/expected/testDates.html index 8c423b41a5..405efdbe40 100644 --- a/packages/cli/test/functional/test_site/expected/testDates.html +++ b/packages/cli/test/functional/test_site/expected/testDates.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testEmptyAltFrontMatter.html b/packages/cli/test/functional/test_site/expected/testEmptyAltFrontMatter.html index d9d04f9376..263b7ca4dd 100644 --- a/packages/cli/test/functional/test_site/expected/testEmptyAltFrontMatter.html +++ b/packages/cli/test/functional/test_site/expected/testEmptyAltFrontMatter.html @@ -17,8 +17,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testEmptyFrontmatter.html b/packages/cli/test/functional/test_site/expected/testEmptyFrontmatter.html index 740a42ab03..d89cdba4ba 100644 --- a/packages/cli/test/functional/test_site/expected/testEmptyFrontmatter.html +++ b/packages/cli/test/functional/test_site/expected/testEmptyFrontmatter.html @@ -17,8 +17,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testExternalScripts.html b/packages/cli/test/functional/test_site/expected/testExternalScripts.html index a9129952af..6c76e72b40 100644 --- a/packages/cli/test/functional/test_site/expected/testExternalScripts.html +++ b/packages/cli/test/functional/test_site/expected/testExternalScripts.html @@ -17,8 +17,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testFontAwesomeInPage.html b/packages/cli/test/functional/test_site/expected/testFontAwesomeInPage.html new file mode 100644 index 0000000000..ff4d87bf6e --- /dev/null +++ b/packages/cli/test/functional/test_site/expected/testFontAwesomeInPage.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + font-awesome icon in page, only font-awesome stylesheet should be loaded + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + +
  • Open Bugs
  • +
    +
    +
    + Test Jumbotron
    +
    +
    +
    +

    Relative Link Test This is a relative Intra-Site link in a layout (see link)

    +
    +
    + + + +
    + + +

    + There is one font-awesome icon in this modal. +

    + +

    A font-awesome icon is supposed to appear here --->

    +
    +

    There is one font-awesome icon in this page content.

    +

    Open up console. Only font-awesome stylesheet should be loaded!

    +
    + + + +
    +
    + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/cli/test/functional/test_site/expected/testFontAwesomeInPage.page-vue-render.js b/packages/cli/test/functional/test_site/expected/testFontAwesomeInPage.page-vue-render.js new file mode 100644 index 0000000000..b26961bc2e --- /dev/null +++ b/packages/cli/test/functional/test_site/expected/testFontAwesomeInPage.page-vue-render.js @@ -0,0 +1,19 @@ + + var pageVueRenderFn = function anonymous( +) { +with(this){return _c('div',{attrs:{"id":"app"}},[_c('div',[_c('header',[_c('navbar',{attrs:{"type":"dark","default-highlight-on":"sibling-or-child"},scopedSlots:_u([{key:"brand",fn:function(){return [_c('a',{staticClass:"navbar-brand",attrs:{"href":"/","title":"Home"}},[_v("MarkBind Test Site")])]},proxy:true}])},[_v(" "),_c('li',[_c('a',{staticClass:"nav-link",attrs:{"href":"/test_site/bugs/index.html"}},[_v("Open Bugs")])])]),_v(" "),_m(0)],1),_v(" "),_m(1)]),_v(" "),_c('div',{attrs:{"id":"flex-body"}},[_c('overlay-source',{attrs:{"id":"site-nav","tag-name":"nav","to":"site-nav"}},[_c('div',{staticClass:"nav-component slim-scroll"})]),_v(" "),_c('div',{attrs:{"id":"content-wrapper"}},[_c('breadcrumb'),_v(" "),_c('p',[_c('trigger',{attrs:{"for":"modal:fontAwesome"}},[_v("There is one font-awesome icon in this modal")]),_v(".")],1),_v(" "),_c('modal',{attrs:{"id":"modal:fontAwesome"},scopedSlots:_u([{key:"header",fn:function(){return [_c('strong',[_v("Modal with font-awesome icon")]),_v(" 🚀")]},proxy:true}])},[_v(" "),_c('p',[_v("A font-awesome icon is supposed to appear here ---> "),_c('span',{staticClass:"fas fa-code-branch",attrs:{"aria-hidden":"true"}})])]),_v(" "),_m(2),_v(" "),_m(3)],1),_v(" "),_c('overlay-source',{attrs:{"id":"page-nav","tag-name":"nav","to":"page-nav"}},[_c('div',{staticClass:"nav-component slim-scroll"})])],1)])} +}; + var pageVueStaticRenderFns = [function anonymous( +) { +with(this){return _c('div',{staticClass:"bg-info display-4 text-center text-white"},[_c('br'),_v("\n Test Jumbotron"),_c('br'),_v(" "),_c('br')])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("Relative Link Test")]),_v(" This is a relative Intra-Site link in a layout (see "),_c('a',{attrs:{"href":"/test_site/index.html#heading-with-hidden-keyword"}},[_v("link")]),_v(")")])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("There is one font-awesome icon in this page content.")])])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("Open up console. Only font-awesome stylesheet should be loaded!")])])} +}]; + \ No newline at end of file diff --git a/packages/cli/test/functional/test_site/expected/testGlyphiconInPage.html b/packages/cli/test/functional/test_site/expected/testGlyphiconInPage.html new file mode 100644 index 0000000000..bbc946bcb5 --- /dev/null +++ b/packages/cli/test/functional/test_site/expected/testGlyphiconInPage.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + glyphicon icon in page, only glyphicon stylesheet should be loaded + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + +
  • Open Bugs
  • +
    +
    +
    + Test Jumbotron
    +
    +
    +
    +

    Relative Link Test This is a relative Intra-Site link in a layout (see link)

    +
    +
    + + + +
    + + + +

    There are glyphicon icons in this page content.

    +

    Open up console. Only glyphicon stylesheet should be loaded!

    +
    + + + +
    +
    + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/cli/test/functional/test_site/expected/testGlyphiconInPage.page-vue-render.js b/packages/cli/test/functional/test_site/expected/testGlyphiconInPage.page-vue-render.js new file mode 100644 index 0000000000..25ae692f13 --- /dev/null +++ b/packages/cli/test/functional/test_site/expected/testGlyphiconInPage.page-vue-render.js @@ -0,0 +1,19 @@ + + var pageVueRenderFn = function anonymous( +) { +with(this){return _c('div',{attrs:{"id":"app"}},[_c('div',[_c('header',[_c('navbar',{attrs:{"type":"dark","default-highlight-on":"sibling-or-child"},scopedSlots:_u([{key:"brand",fn:function(){return [_c('a',{staticClass:"navbar-brand",attrs:{"href":"/","title":"Home"}},[_v("MarkBind Test Site")])]},proxy:true}])},[_v(" "),_c('li',[_c('a',{staticClass:"nav-link",attrs:{"href":"/test_site/bugs/index.html"}},[_v("Open Bugs")])])]),_v(" "),_m(0)],1),_v(" "),_m(1)]),_v(" "),_c('div',{attrs:{"id":"flex-body"}},[_c('overlay-source',{attrs:{"id":"site-nav","tag-name":"nav","to":"site-nav"}},[_c('div',{staticClass:"nav-component slim-scroll"})]),_v(" "),_c('div',{attrs:{"id":"content-wrapper"}},[_c('breadcrumb'),_v(" "),_c('panel',{scopedSlots:_u([{key:"header",fn:function(){return [_c('p',[_v("There are glyphicon icons on this panel.")])]},proxy:true}])}),_v(" "),_m(2),_v(" "),_m(3)],1),_v(" "),_c('overlay-source',{attrs:{"id":"page-nav","tag-name":"nav","to":"page-nav"}},[_c('div',{staticClass:"nav-component slim-scroll"})])],1)])} +}; + var pageVueStaticRenderFns = [function anonymous( +) { +with(this){return _c('div',{staticClass:"bg-info display-4 text-center text-white"},[_c('br'),_v("\n Test Jumbotron"),_c('br'),_v(" "),_c('br')])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("Relative Link Test")]),_v(" This is a relative Intra-Site link in a layout (see "),_c('a',{attrs:{"href":"/test_site/index.html#heading-with-hidden-keyword"}},[_v("link")]),_v(")")])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("There are glyphicon icons in this page content.")])])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("Open up console. Only glyphicon stylesheet should be loaded!")])])} +}]; + \ No newline at end of file diff --git a/packages/cli/test/functional/test_site/expected/testHr.html b/packages/cli/test/functional/test_site/expected/testHr.html index 7ee59a5b29..e20706ab67 100644 --- a/packages/cli/test/functional/test_site/expected/testHr.html +++ b/packages/cli/test/functional/test_site/expected/testHr.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testIconsInSiteLayout.html b/packages/cli/test/functional/test_site/expected/testIconsInSiteLayout.html new file mode 100644 index 0000000000..481ed5d0c0 --- /dev/null +++ b/packages/cli/test/functional/test_site/expected/testIconsInSiteLayout.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + glyphicon & octicon icon in page, only glyphicon & octicon stylesheets should be loaded + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + +
  • Open Bugs
  • +
    +
    +
    + Test Jumbotron
    +
    +
    +
    +

    Relative Link Test This is a relative Intra-Site link in a layout (see link)

    +
    +
    + + + +
    + + +

    There are one glyphicon icon and one font-awesome icon in the site layout of this page.

    +

    Open up console. Only glyphicon and font-awesome stylesheets should be loaded!

    +
    + + + +
    +
    + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/cli/test/functional/test_site/expected/testIconsInSiteLayout.page-vue-render.js b/packages/cli/test/functional/test_site/expected/testIconsInSiteLayout.page-vue-render.js new file mode 100644 index 0000000000..f5b89c09c6 --- /dev/null +++ b/packages/cli/test/functional/test_site/expected/testIconsInSiteLayout.page-vue-render.js @@ -0,0 +1,19 @@ + + var pageVueRenderFn = function anonymous( +) { +with(this){return _c('div',{attrs:{"id":"app"}},[_c('div',[_c('header',[_c('navbar',{attrs:{"type":"dark","default-highlight-on":"sibling-or-child"},scopedSlots:_u([{key:"brand",fn:function(){return [_c('a',{staticClass:"navbar-brand",attrs:{"href":"/","title":"Home"}},[_v("MarkBind Test Site")])]},proxy:true}])},[_v(" "),_c('li',[_c('a',{staticClass:"nav-link",attrs:{"href":"/test_site/bugs/index.html"}},[_v("Open Bugs")])])]),_v(" "),_m(0)],1),_v(" "),_m(1)]),_v(" "),_c('div',{attrs:{"id":"flex-body"}},[_c('overlay-source',{attrs:{"id":"site-nav","tag-name":"nav","to":"site-nav"}},[_c('div',{staticClass:"nav-component slim-scroll"},[_v("\\\n "),_c('span',[_v("An glyphicon icon is supposed to appear here ---> "),_c('span',{staticClass:"glyphicon glyphicon-hand-right",attrs:{"aria-hidden":"true"}})])])]),_v(" "),_c('div',{attrs:{"id":"content-wrapper"}},[_c('breadcrumb'),_v(" "),_m(2),_v(" "),_m(3)],1),_v(" "),_c('overlay-source',{attrs:{"id":"page-nav","tag-name":"nav","to":"page-nav"}},[_c('div',{staticClass:"nav-component slim-scroll"},[_c('span',[_v("A font-awesome icon is supposed to appear here ---> "),_c('span',{staticClass:"fas fa-code-branch",attrs:{"aria-hidden":"true"}})])])])],1)])} +}; + var pageVueStaticRenderFns = [function anonymous( +) { +with(this){return _c('div',{staticClass:"bg-info display-4 text-center text-white"},[_c('br'),_v("\n Test Jumbotron"),_c('br'),_v(" "),_c('br')])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("Relative Link Test")]),_v(" This is a relative Intra-Site link in a layout (see "),_c('a',{attrs:{"href":"/test_site/index.html#heading-with-hidden-keyword"}},[_v("link")]),_v(")")])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("There are one glyphicon icon and one font-awesome icon in the site layout of this page.")])])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("Open up console. Only glyphicon and font-awesome stylesheets should be loaded!")])])} +}]; + \ No newline at end of file diff --git a/packages/cli/test/functional/test_site/expected/testImages.html b/packages/cli/test/functional/test_site/expected/testImages.html index d45c590f42..3d144fbc8b 100644 --- a/packages/cli/test/functional/test_site/expected/testImages.html +++ b/packages/cli/test/functional/test_site/expected/testImages.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testIncludeBoilerplate.html b/packages/cli/test/functional/test_site/expected/testIncludeBoilerplate.html index fc3bb0b4f4..a222739579 100644 --- a/packages/cli/test/functional/test_site/expected/testIncludeBoilerplate.html +++ b/packages/cli/test/functional/test_site/expected/testIncludeBoilerplate.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testIncludeMultipleModals.html b/packages/cli/test/functional/test_site/expected/testIncludeMultipleModals.html index 7e0ea9fb93..6ae68a4db4 100644 --- a/packages/cli/test/functional/test_site/expected/testIncludeMultipleModals.html +++ b/packages/cli/test/functional/test_site/expected/testIncludeMultipleModals.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testIncludePluginsRendered.html b/packages/cli/test/functional/test_site/expected/testIncludePluginsRendered.html index 27c568ab6b..7f73cc0b93 100644 --- a/packages/cli/test/functional/test_site/expected/testIncludePluginsRendered.html +++ b/packages/cli/test/functional/test_site/expected/testIncludePluginsRendered.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testLayouts.html b/packages/cli/test/functional/test_site/expected/testLayouts.html index b8e87023cc..0afb58a661 100644 --- a/packages/cli/test/functional/test_site/expected/testLayouts.html +++ b/packages/cli/test/functional/test_site/expected/testLayouts.html @@ -17,8 +17,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testLayoutsOverride.html b/packages/cli/test/functional/test_site/expected/testLayoutsOverride.html index 4ffeb28683..c2c199c018 100644 --- a/packages/cli/test/functional/test_site/expected/testLayoutsOverride.html +++ b/packages/cli/test/functional/test_site/expected/testLayoutsOverride.html @@ -17,8 +17,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testLayoutsOverrideWithAltFrontmatter.html b/packages/cli/test/functional/test_site/expected/testLayoutsOverrideWithAltFrontmatter.html index 37e191ff64..f4d00fcfb8 100644 --- a/packages/cli/test/functional/test_site/expected/testLayoutsOverrideWithAltFrontmatter.html +++ b/packages/cli/test/functional/test_site/expected/testLayoutsOverrideWithAltFrontmatter.html @@ -17,8 +17,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testLayoutsWithAltFrontMatter.html b/packages/cli/test/functional/test_site/expected/testLayoutsWithAltFrontMatter.html index b86acb6cb5..0be80a8dcc 100644 --- a/packages/cli/test/functional/test_site/expected/testLayoutsWithAltFrontMatter.html +++ b/packages/cli/test/functional/test_site/expected/testLayoutsWithAltFrontMatter.html @@ -17,8 +17,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testLinks.html b/packages/cli/test/functional/test_site/expected/testLinks.html index 15c32d44c6..e894137bb3 100644 --- a/packages/cli/test/functional/test_site/expected/testLinks.html +++ b/packages/cli/test/functional/test_site/expected/testLinks.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testList.html b/packages/cli/test/functional/test_site/expected/testList.html index df951afc47..a967a71fb8 100644 --- a/packages/cli/test/functional/test_site/expected/testList.html +++ b/packages/cli/test/functional/test_site/expected/testList.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testMaterialIconsInPage.html b/packages/cli/test/functional/test_site/expected/testMaterialIconsInPage.html new file mode 100644 index 0000000000..26d898a319 --- /dev/null +++ b/packages/cli/test/functional/test_site/expected/testMaterialIconsInPage.html @@ -0,0 +1,119 @@ + + + + + + + + + + + + material-icons icon in page, only material-icons stylesheet should be loaded + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + +
  • Open Bugs
  • +
    +
    +
    + Test Jumbotron
    +
    +
    +
    +

    Relative Link Test This is a relative Intra-Site link in a layout (see link)

    +
    +
    + + + +
    + + +

    An material icon is supposed to appear here --->

    +

    There is one material-icons icon in this page content.

    +

    Open up console. Only material-icons stylesheet should be loaded!

    +
    + + + +
    +
    + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/cli/test/functional/test_site/expected/testMaterialIconsInPage.page-vue-render.js b/packages/cli/test/functional/test_site/expected/testMaterialIconsInPage.page-vue-render.js new file mode 100644 index 0000000000..a5f857d982 --- /dev/null +++ b/packages/cli/test/functional/test_site/expected/testMaterialIconsInPage.page-vue-render.js @@ -0,0 +1,22 @@ + + var pageVueRenderFn = function anonymous( +) { +with(this){return _c('div',{attrs:{"id":"app"}},[_c('div',[_c('header',[_c('navbar',{attrs:{"type":"dark","default-highlight-on":"sibling-or-child"},scopedSlots:_u([{key:"brand",fn:function(){return [_c('a',{staticClass:"navbar-brand",attrs:{"href":"/","title":"Home"}},[_v("MarkBind Test Site")])]},proxy:true}])},[_v(" "),_c('li',[_c('a',{staticClass:"nav-link",attrs:{"href":"/test_site/bugs/index.html"}},[_v("Open Bugs")])])]),_v(" "),_m(0)],1),_v(" "),_m(1)]),_v(" "),_c('div',{attrs:{"id":"flex-body"}},[_c('overlay-source',{attrs:{"id":"site-nav","tag-name":"nav","to":"site-nav"}},[_c('div',{staticClass:"nav-component slim-scroll"})]),_v(" "),_c('div',{attrs:{"id":"content-wrapper"}},[_c('breadcrumb'),_v(" "),_m(2),_v(" "),_m(3),_v(" "),_m(4)],1),_v(" "),_c('overlay-source',{attrs:{"id":"page-nav","tag-name":"nav","to":"page-nav"}},[_c('div',{staticClass:"nav-component slim-scroll"})])],1)])} +}; + var pageVueStaticRenderFns = [function anonymous( +) { +with(this){return _c('div',{staticClass:"bg-info display-4 text-center text-white"},[_c('br'),_v("\n Test Jumbotron"),_c('br'),_v(" "),_c('br')])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("Relative Link Test")]),_v(" This is a relative Intra-Site link in a layout (see "),_c('a',{attrs:{"href":"/test_site/index.html#heading-with-hidden-keyword"}},[_v("link")]),_v(")")])} +},function anonymous( +) { +with(this){return _c('p',[_v("An material icon is supposed to appear here ---> "),_c('span',{staticClass:"material-icons-round align-middle",attrs:{"aria-hidden":"true"}},[_v("perm_media")])])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("There is one material-icons icon in this page content.")])])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("Open up console. Only material-icons stylesheet should be loaded!")])])} +}]; + \ No newline at end of file diff --git a/packages/cli/test/functional/test_site/expected/testMath.html b/packages/cli/test/functional/test_site/expected/testMath.html index fa2a7cfd30..26c3de76a3 100644 --- a/packages/cli/test/functional/test_site/expected/testMath.html +++ b/packages/cli/test/functional/test_site/expected/testMath.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testModals.html b/packages/cli/test/functional/test_site/expected/testModals.html index ae4ea8d7d1..4a7d7cdb23 100644 --- a/packages/cli/test/functional/test_site/expected/testModals.html +++ b/packages/cli/test/functional/test_site/expected/testModals.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testNunjucksPathResolving.html b/packages/cli/test/functional/test_site/expected/testNunjucksPathResolving.html index f921b4c541..d58f9f83aa 100644 --- a/packages/cli/test/functional/test_site/expected/testNunjucksPathResolving.html +++ b/packages/cli/test/functional/test_site/expected/testNunjucksPathResolving.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testOcticonInPage.html b/packages/cli/test/functional/test_site/expected/testOcticonInPage.html new file mode 100644 index 0000000000..fe0e063e69 --- /dev/null +++ b/packages/cli/test/functional/test_site/expected/testOcticonInPage.html @@ -0,0 +1,132 @@ + + + + + + + + + + + + octicon icon in page, only octicon stylesheet should be loaded + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    + + +
  • Open Bugs
  • +
    +
    +
    + Test Jumbotron
    +
    +
    +
    +

    Relative Link Test This is a relative Intra-Site link in a layout (see link)

    +
    +
    + + + +
    + + + + + + +

    There is one octicon icon in this page content.

    +

    Open up console. Only octicon stylesheet should be loaded!

    +
    + + + +
    +
    + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/cli/test/functional/test_site/expected/testOcticonInPage.page-vue-render.js b/packages/cli/test/functional/test_site/expected/testOcticonInPage.page-vue-render.js new file mode 100644 index 0000000000..376603f0dc --- /dev/null +++ b/packages/cli/test/functional/test_site/expected/testOcticonInPage.page-vue-render.js @@ -0,0 +1,19 @@ + + var pageVueRenderFn = function anonymous( +) { +with(this){return _c('div',{attrs:{"id":"app"}},[_c('div',[_c('header',[_c('navbar',{attrs:{"type":"dark","default-highlight-on":"sibling-or-child"},scopedSlots:_u([{key:"brand",fn:function(){return [_c('a',{staticClass:"navbar-brand",attrs:{"href":"/","title":"Home"}},[_v("MarkBind Test Site")])]},proxy:true}])},[_v(" "),_c('li',[_c('a',{staticClass:"nav-link",attrs:{"href":"/test_site/bugs/index.html"}},[_v("Open Bugs")])])]),_v(" "),_m(0)],1),_v(" "),_m(1)]),_v(" "),_c('div',{attrs:{"id":"flex-body"}},[_c('overlay-source',{attrs:{"id":"site-nav","tag-name":"nav","to":"site-nav"}},[_c('div',{staticClass:"nav-component slim-scroll"})]),_v(" "),_c('div',{attrs:{"id":"content-wrapper"}},[_c('breadcrumb'),_v(" "),_c('quiz',{scopedSlots:_u([{key:"intro",fn:function(){return [_c('div',[_v("\n There is an octicon icon in this quiz.\n ")])]},proxy:true}])},[_v(" "),_c('question',{attrs:{"type":"checkbox"},scopedSlots:_u([{key:"hint",fn:function(){return [_c('p',[_v("An octicon icon is supposed to appear here ---> "),_c('svg',{staticClass:"octicon octicon-git-pull-request",attrs:{"version":"1.1","width":"16","height":"16","viewBox":"0 0 16 16","aria-hidden":"true"}},[_c('path',{attrs:{"fill-rule":"evenodd","d":"M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"}})])])]},proxy:true},{key:"header",fn:function(){return [_c('p',[_v("There is an octicon icon in this question.")])]},proxy:true}])})],1),_v(" "),_m(2),_v(" "),_m(3)],1),_v(" "),_c('overlay-source',{attrs:{"id":"page-nav","tag-name":"nav","to":"page-nav"}},[_c('div',{staticClass:"nav-component slim-scroll"})])],1)])} +}; + var pageVueStaticRenderFns = [function anonymous( +) { +with(this){return _c('div',{staticClass:"bg-info display-4 text-center text-white"},[_c('br'),_v("\n Test Jumbotron"),_c('br'),_v(" "),_c('br')])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("Relative Link Test")]),_v(" This is a relative Intra-Site link in a layout (see "),_c('a',{attrs:{"href":"/test_site/index.html#heading-with-hidden-keyword"}},[_v("link")]),_v(")")])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("There is one octicon icon in this page content.")])])} +},function anonymous( +) { +with(this){return _c('p',[_c('strong',[_v("Open up console. Only octicon stylesheet should be loaded!")])])} +}]; + \ No newline at end of file diff --git a/packages/cli/test/functional/test_site/expected/testPageNav.html b/packages/cli/test/functional/test_site/expected/testPageNav.html index ba5e96351b..5659ef092f 100644 --- a/packages/cli/test/functional/test_site/expected/testPageNav.html +++ b/packages/cli/test/functional/test_site/expected/testPageNav.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testPageNavPrint.html b/packages/cli/test/functional/test_site/expected/testPageNavPrint.html index 359cd02e36..ea54be6017 100644 --- a/packages/cli/test/functional/test_site/expected/testPageNavPrint.html +++ b/packages/cli/test/functional/test_site/expected/testPageNavPrint.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testPageNavTarget.html b/packages/cli/test/functional/test_site/expected/testPageNavTarget.html index 97b8da0ad4..abd44197f1 100644 --- a/packages/cli/test/functional/test_site/expected/testPageNavTarget.html +++ b/packages/cli/test/functional/test_site/expected/testPageNavTarget.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testPageNavWithOnlyTitle.html b/packages/cli/test/functional/test_site/expected/testPageNavWithOnlyTitle.html index 1fff009232..dbb8c1ef1d 100644 --- a/packages/cli/test/functional/test_site/expected/testPageNavWithOnlyTitle.html +++ b/packages/cli/test/functional/test_site/expected/testPageNavWithOnlyTitle.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testPageNavWithoutTitleAndNavHeadings.html b/packages/cli/test/functional/test_site/expected/testPageNavWithoutTitleAndNavHeadings.html index bd26ef82ac..b5e7996113 100644 --- a/packages/cli/test/functional/test_site/expected/testPageNavWithoutTitleAndNavHeadings.html +++ b/packages/cli/test/functional/test_site/expected/testPageNavWithoutTitleAndNavHeadings.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testPanelMarkdownParsing.html b/packages/cli/test/functional/test_site/expected/testPanelMarkdownParsing.html index 1d7d10a773..535a86c25e 100644 --- a/packages/cli/test/functional/test_site/expected/testPanelMarkdownParsing.html +++ b/packages/cli/test/functional/test_site/expected/testPanelMarkdownParsing.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testPanels.html b/packages/cli/test/functional/test_site/expected/testPanels.html index 4012a54e1b..bb9f55e670 100644 --- a/packages/cli/test/functional/test_site/expected/testPanels.html +++ b/packages/cli/test/functional/test_site/expected/testPanels.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testPanelsClosingTransition.html b/packages/cli/test/functional/test_site/expected/testPanelsClosingTransition.html index e11a0278c3..3c192056d7 100644 --- a/packages/cli/test/functional/test_site/expected/testPanelsClosingTransition.html +++ b/packages/cli/test/functional/test_site/expected/testPanelsClosingTransition.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testPlantUML.html b/packages/cli/test/functional/test_site/expected/testPlantUML.html index 151e9b377f..d7eba1bd10 100644 --- a/packages/cli/test/functional/test_site/expected/testPlantUML.html +++ b/packages/cli/test/functional/test_site/expected/testPlantUML.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testPopoverTrigger.html b/packages/cli/test/functional/test_site/expected/testPopoverTrigger.html index a8d65504f0..e8affde17b 100644 --- a/packages/cli/test/functional/test_site/expected/testPopoverTrigger.html +++ b/packages/cli/test/functional/test_site/expected/testPopoverTrigger.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testPopovers.html b/packages/cli/test/functional/test_site/expected/testPopovers.html index 0918698886..8441bf89fd 100644 --- a/packages/cli/test/functional/test_site/expected/testPopovers.html +++ b/packages/cli/test/functional/test_site/expected/testPopovers.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testSingleAltFrontMatter.html b/packages/cli/test/functional/test_site/expected/testSingleAltFrontMatter.html index 82f70fe5bf..bd0a3db485 100644 --- a/packages/cli/test/functional/test_site/expected/testSingleAltFrontMatter.html +++ b/packages/cli/test/functional/test_site/expected/testSingleAltFrontMatter.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testThumbnails.html b/packages/cli/test/functional/test_site/expected/testThumbnails.html index a7f8609110..97592e7832 100644 --- a/packages/cli/test/functional/test_site/expected/testThumbnails.html +++ b/packages/cli/test/functional/test_site/expected/testThumbnails.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testTooltipSpacing.html b/packages/cli/test/functional/test_site/expected/testTooltipSpacing.html index 1ec3466cf8..1783664905 100644 --- a/packages/cli/test/functional/test_site/expected/testTooltipSpacing.html +++ b/packages/cli/test/functional/test_site/expected/testTooltipSpacing.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testTree.html b/packages/cli/test/functional/test_site/expected/testTree.html index b8f6604713..a34d98b991 100644 --- a/packages/cli/test/functional/test_site/expected/testTree.html +++ b/packages/cli/test/functional/test_site/expected/testTree.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testVariableContainsInclude.html b/packages/cli/test/functional/test_site/expected/testVariableContainsInclude.html index c9a577028b..b35c6ffc3c 100644 --- a/packages/cli/test/functional/test_site/expected/testVariableContainsInclude.html +++ b/packages/cli/test/functional/test_site/expected/testVariableContainsInclude.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/testWeb3FormPlugin.html b/packages/cli/test/functional/test_site/expected/testWeb3FormPlugin.html index 7dbf9b3088..d8e03e546a 100644 --- a/packages/cli/test/functional/test_site/expected/testWeb3FormPlugin.html +++ b/packages/cli/test/functional/test_site/expected/testWeb3FormPlugin.html @@ -14,8 +14,6 @@ - - diff --git a/packages/cli/test/functional/test_site/expected/test_md_fragment.html b/packages/cli/test/functional/test_site/expected/test_md_fragment.html index d03e7153fd..a98237ca99 100644 --- a/packages/cli/test/functional/test_site/expected/test_md_fragment.html +++ b/packages/cli/test/functional/test_site/expected/test_md_fragment.html @@ -13,8 +13,6 @@ - - diff --git a/packages/cli/test/functional/test_site/site.json b/packages/cli/test/functional/test_site/site.json index b2053ea460..18710cd1f2 100644 --- a/packages/cli/test/functional/test_site/site.json +++ b/packages/cli/test/functional/test_site/site.json @@ -173,6 +173,26 @@ { "src": "testList.md", "title": "web 3 forms" + }, + { + "src": "testFontAwesomeInPage.md", + "title": "font-awesome icon in page, only font-awesome stylesheet should be loaded" + }, + { + "src": "testGlyphiconInPage.md", + "title": "glyphicon icon in page, only glyphicon stylesheet should be loaded" + }, + { + "src": "testMaterialIconsInPage.md", + "title": "material-icons icon in page, only material-icons stylesheet should be loaded" + }, + { + "src": "testOcticonInPage.md", + "title": "octicon icon in page, only octicon stylesheet should be loaded" + }, + { + "src": "testIconsInSiteLayout.md", + "title": "glyphicon & octicon icon in page, only glyphicon & octicon stylesheets should be loaded" } ], "pagesExclude": ["**/*-fragment.md"], diff --git a/packages/cli/test/functional/test_site/testFontAwesomeInPage.md b/packages/cli/test/functional/test_site/testFontAwesomeInPage.md new file mode 100644 index 0000000000..3d3dfd08a5 --- /dev/null +++ b/packages/cli/test/functional/test_site/testFontAwesomeInPage.md @@ -0,0 +1,16 @@ + +title: Test optimize loading of icon stylesheets +layout: simpleLayoutWithoutIcons.md + + +There is one font-awesome icon in this modal. + + + +A font-awesome icon is supposed to appear here ---> :fas-code-branch: + + + +**There is one font-awesome icon in this page content.** + +**Open up console. Only font-awesome stylesheet should be loaded!** diff --git a/packages/cli/test/functional/test_site/testGlyphiconInPage.md b/packages/cli/test/functional/test_site/testGlyphiconInPage.md new file mode 100644 index 0000000000..554bbd2394 --- /dev/null +++ b/packages/cli/test/functional/test_site/testGlyphiconInPage.md @@ -0,0 +1,10 @@ + +title: Test optimize loading of icon stylesheets +layout: simpleLayoutWithoutIcons.md + + + + +**There are glyphicon icons in this page content.** + +**Open up console. Only glyphicon stylesheet should be loaded!** diff --git a/packages/cli/test/functional/test_site/testIconsInSiteLayout.md b/packages/cli/test/functional/test_site/testIconsInSiteLayout.md new file mode 100644 index 0000000000..7c4519b096 --- /dev/null +++ b/packages/cli/test/functional/test_site/testIconsInSiteLayout.md @@ -0,0 +1,8 @@ + +title: Test optimize loading of icon stylesheets +layout: simpleLayoutWithIcons.md + + +**There are one glyphicon icon and one font-awesome icon in the site layout of this page.** + +**Open up console. Only glyphicon and font-awesome stylesheets should be loaded!** diff --git a/packages/cli/test/functional/test_site/testMaterialIconsInPage.md b/packages/cli/test/functional/test_site/testMaterialIconsInPage.md new file mode 100644 index 0000000000..f8c675b7d6 --- /dev/null +++ b/packages/cli/test/functional/test_site/testMaterialIconsInPage.md @@ -0,0 +1,10 @@ + +title: Test optimize loading of icon stylesheets +layout: simpleLayoutWithoutIcons.md + + +An material icon is supposed to appear here ---> :mir-perm-media: + +**There is one material-icons icon in this page content.** + +**Open up console. Only material-icons stylesheet should be loaded!** diff --git a/packages/cli/test/functional/test_site/testOcticonInPage.md b/packages/cli/test/functional/test_site/testOcticonInPage.md new file mode 100644 index 0000000000..ff3608d843 --- /dev/null +++ b/packages/cli/test/functional/test_site/testOcticonInPage.md @@ -0,0 +1,18 @@ + +title: Test optimize loading of icon stylesheets +layout: simpleLayoutWithoutIcons.md + + + + +
    + There is an octicon icon in this quiz. +
    + + + +
    + +**There is one octicon icon in this page content.** + +**Open up console. Only octicon stylesheet should be loaded!** diff --git a/packages/cli/test/functional/test_site_algolia_plugin/expected/index.html b/packages/cli/test/functional/test_site_algolia_plugin/expected/index.html index 5e785b92d4..db9a81f14b 100644 --- a/packages/cli/test/functional/test_site_algolia_plugin/expected/index.html +++ b/packages/cli/test/functional/test_site_algolia_plugin/expected/index.html @@ -10,8 +10,6 @@ - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/404.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/404.html index 13f853aad7..2158f94738 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/404.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/404.html @@ -9,9 +9,6 @@ Page not found - - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/Home.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/Home.html index 88f5c8334e..8d3e8ff4c0 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/Home.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/Home.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/Page-1.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/Page-1.html index 6a7c5c8da1..67615e8608 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/Page-1.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/Page-1.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/_Footer.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/_Footer.html index f01fe6fac1..25ee67cd15 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/_Footer.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/_Footer.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/_Sidebar.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/_Sidebar.html index 8e2f5ecc71..2db30c1650 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/_Sidebar.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/_Sidebar.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/about.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/about.html index 9d08d576b4..13564020e8 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/about.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/about.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic1.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic1.html index 632d35c19e..9be245b692 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic1.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic1.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic2.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic2.html index 98dd3a3765..1d882ce69b 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic2.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic2.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic3a.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic3a.html index 142711a4b7..10bfa3a9d8 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic3a.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic3a.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic3b.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic3b.html index 5b9cc38e50..2f698110d2 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic3b.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/contents/topic3b.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/index.html b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/index.html index 7e61e6efa4..d158150f3d 100644 --- a/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/index.html +++ b/packages/cli/test/functional/test_site_convert/test_basic_convert/expected/index.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/404.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/404.html index 5d0b157b13..c4e2f1a306 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/404.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/404.html @@ -9,9 +9,6 @@ Page not found - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/Home.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/Home.html index ddfd352805..ff868372e5 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/Home.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/Home.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/Page-1.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/Page-1.html index def0405d09..b60022e89d 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/Page-1.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/Page-1.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/README.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/README.html index b69726fd98..3cb6cf67b6 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/README.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/README.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/about.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/about.html index 09710148e0..40a8435838 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/about.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/about.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic1.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic1.html index 5c5e2ff772..58ea27302a 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic1.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic1.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic2.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic2.html index e1d5ecf555..3831263576 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic2.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic2.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic3a.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic3a.html index 9ea40c19ca..2825977ac0 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic3a.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic3a.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic3b.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic3b.html index b9ac451ff9..2d90d40a61 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic3b.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/contents/topic3b.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/index.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/index.html index 18d7d3dca2..5967e15a5d 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/index.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/index.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_1.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_1.html index 3b7616d3cd..d067b6154e 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_1.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_1.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_2.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_2.html index a675a1b8d9..89bb244418 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_2.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_2.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_3.html b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_3.html index bd0545ac24..f56bce2ab1 100644 --- a/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_3.html +++ b/packages/cli/test/functional/test_site_convert/test_navigation_convert/expected/test_folder/extra_3.html @@ -8,9 +8,6 @@ - - - diff --git a/packages/cli/test/functional/test_site_special_tags/expected/index.html b/packages/cli/test/functional/test_site_special_tags/expected/index.html index 921277fcec..42df07ec9e 100644 --- a/packages/cli/test/functional/test_site_special_tags/expected/index.html +++ b/packages/cli/test/functional/test_site_special_tags/expected/index.html @@ -9,9 +9,6 @@ Landing Page - - - diff --git a/packages/cli/test/functional/test_site_templates/test_default/expected/404.html b/packages/cli/test/functional/test_site_templates/test_default/expected/404.html index 3d444b1321..68798ea39a 100644 --- a/packages/cli/test/functional/test_site_templates/test_default/expected/404.html +++ b/packages/cli/test/functional/test_site_templates/test_default/expected/404.html @@ -8,10 +8,6 @@ Page not found - - - - diff --git a/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic1.html b/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic1.html index eaae0b9283..f303ed6596 100644 --- a/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic1.html +++ b/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic1.html @@ -10,8 +10,6 @@ - - diff --git a/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic2.html b/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic2.html index f2f1be48f2..9a436e3b99 100644 --- a/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic2.html +++ b/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic2.html @@ -10,8 +10,6 @@ - - diff --git a/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3a.html b/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3a.html index 37a09a4e10..89ccf52e69 100644 --- a/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3a.html +++ b/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3a.html @@ -10,8 +10,6 @@ - - diff --git a/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3b.html b/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3b.html index cad5e4e2a2..8e7b1a5874 100644 --- a/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3b.html +++ b/packages/cli/test/functional/test_site_templates/test_default/expected/contents/topic3b.html @@ -10,8 +10,6 @@ - - diff --git a/packages/cli/test/functional/test_site_templates/test_default/expected/index.html b/packages/cli/test/functional/test_site_templates/test_default/expected/index.html index 2be9ea8ff2..3a6952f0f4 100644 --- a/packages/cli/test/functional/test_site_templates/test_default/expected/index.html +++ b/packages/cli/test/functional/test_site_templates/test_default/expected/index.html @@ -10,8 +10,6 @@ - - diff --git a/packages/cli/test/functional/test_site_templates/test_minimal/expected/index.html b/packages/cli/test/functional/test_site_templates/test_minimal/expected/index.html index 07e5006389..f25c0c7140 100644 --- a/packages/cli/test/functional/test_site_templates/test_minimal/expected/index.html +++ b/packages/cli/test/functional/test_site_templates/test_minimal/expected/index.html @@ -9,9 +9,6 @@ Hello World - - - diff --git a/packages/core/src/Page/PageConfig.ts b/packages/core/src/Page/PageConfig.ts index 45dd2be3a9..46894c9a9e 100644 --- a/packages/core/src/Page/PageConfig.ts +++ b/packages/core/src/Page/PageConfig.ts @@ -7,10 +7,10 @@ import { VariableProcessor } from '../variables/VariableProcessor'; export interface PageAssets { bootstrap: string; externalScripts: string[]; - fontAwesome: string; - glyphicons: string; - octicons: string; - materialIcons: string; + fontAwesome?: string; + glyphicons?: string; + octicons?: string; + materialIcons?: string; highlight: string; markBindCss: string; markBindJs: string; diff --git a/packages/core/src/Page/index.ts b/packages/core/src/Page/index.ts index f836a6cc81..c6b8daaca4 100644 --- a/packages/core/src/Page/index.ts +++ b/packages/core/src/Page/index.ts @@ -170,6 +170,36 @@ export class Page { }; } + /** + * Filters out icon asset files that are not used in a page. + * Pre-vue HTML does not include the actual HTML of vue components after rendering, + * and post-vue HTML does not include HTML of popups (e.g. trigger, modals). + * Hence, we need to process both HTML content here. + * @param preVueSsrHtml html content of the page before processing Vue components + * @param postVueSsrHtml html content of the page after processing Vue components + */ + filterIconAssets(preVueSsrHtml: string, postVueSsrHtml: string) { + const $preVueHtml = cheerio.load(preVueSsrHtml); + const $postVueHtml = cheerio.load(postVueSsrHtml); + + if ($preVueHtml('[class^=fa]').length === 0 + && $postVueHtml('[class^=fa]').length === 0) { + delete this.asset.fontAwesome; + } + if ($preVueHtml('[class^=octicon]').length === 0 + && $postVueHtml('[class^=octicon]').length === 0) { + delete this.asset.octicons; + } + if ($preVueHtml('[class^=glyphicon]').length === 0 + && $postVueHtml('[class^=glyphicon]').length === 0) { + delete this.asset.glyphicons; + } + if ($preVueHtml('[class^=material-icons]').length === 0 + && $postVueHtml('[class^=material-icons]').length === 0) { + delete this.asset.materialIcons; + } + } + /** * Checks if page.frontmatter has a valid page navigation specifier */ @@ -542,13 +572,14 @@ export class Page { /* * Server-side render Vue page app into actual html. * - * However, for automated testings (e.g. snapshots), we will not do SSR as we want to retain the - * unrendered DOM for easier reference and checking. + * However, for automated testings (e.g. snapshots), we will output the pre SSR-processed HTML content + * as we want to retain the unrendered DOM for easier reference and checking. */ + const vueSsrHtml = await pageVueServerRenderer.renderVuePage(compiledVuePage); + this.filterIconAssets(content, vueSsrHtml); if (process.env.TEST_MODE) { await this.outputPageHtml(content); } else { - const vueSsrHtml = await pageVueServerRenderer.renderVuePage(compiledVuePage); await this.outputPageHtml(vueSsrHtml); } } diff --git a/packages/core/src/Page/page.njk b/packages/core/src/Page/page.njk index 153eaafe0d..a04af81956 100644 --- a/packages/core/src/Page/page.njk +++ b/packages/core/src/Page/page.njk @@ -11,11 +11,11 @@ {%- if title -%} {{ title }} {%- endif -%} - - - - - + {% if asset.bootstrap %} {%- endif -%} + {% if asset.fontAwesome %} {%- endif -%} + {% if asset.glyphicons %} {%- endif -%} + {% if asset.octicons %} {%- endif -%} + {% if asset.materialIcons %} {%- endif -%} {%- if not dev -%}{%- endif -%} diff --git a/packages/core/test/unit/Page/filterIconAssets.test.js b/packages/core/test/unit/Page/filterIconAssets.test.js new file mode 100644 index 0000000000..fb6391dc95 --- /dev/null +++ b/packages/core/test/unit/Page/filterIconAssets.test.js @@ -0,0 +1,78 @@ +const { Page } = require('../../../src/Page/index') +const { PageConfig } = require('../../../src/Page/PageConfig'); + +jest.mock('../../../src/Page/PageConfig', () => { + return { + PageConfig: jest.fn().mockImplementation(() => { + // You can customize the behavior of the mock constructor here + return { + asset: { + fontAwesome: 'mock-fontawesome.css', + glyphicons: 'mock-glyphicons.css', + octicons: 'mock-octicons.css', + materialIcons: 'mock-materialIcons.css', + } + }; + }), + }; +}); + +test('should filter out all but font-awesome stylesheet', () => { + const mockPageConfig = new PageConfig(); + const mockPage = new Page(mockPageConfig, null); + + mockPage.filterIconAssets('
    ', ''); + + expect(mockPage.asset.fontAwesome).toBeDefined(); + expect(mockPage.asset.glyphicons).toBeUndefined(); + expect(mockPage.asset.octicons).toBeUndefined(); + expect(mockPage.asset.materialIcons).toBeUndefined(); +}); + +test('should filter out all but glyphicon stylesheet', () => { + const mockPageConfig = new PageConfig(); + const mockPage = new Page(mockPageConfig, null); + + mockPage.filterIconAssets('
    ', ''); + + expect(mockPage.asset.glyphicons).toBeDefined(); + expect(mockPage.asset.fontAwesome).toBeUndefined(); + expect(mockPage.asset.octicons).toBeUndefined(); + expect(mockPage.asset.materialIcons).toBeUndefined(); +}); + +test('should filter out all but octicon stylesheet', () => { + const mockPageConfig = new PageConfig(); + const mockPage = new Page(mockPageConfig, null); + + mockPage.filterIconAssets('
    ', ''); + + expect(mockPage.asset.octicons).toBeDefined(); + expect(mockPage.asset.fontAwesome).toBeUndefined(); + expect(mockPage.asset.glyphicons).toBeUndefined(); + expect(mockPage.asset.materialIcons).toBeUndefined(); +}); + +test('should filter out all but material-icons stylesheet', () => { + const mockPageConfig = new PageConfig(); + const mockPage = new Page(mockPageConfig, null); + + mockPage.filterIconAssets('
    ', ''); + + expect(mockPage.asset.materialIcons).toBeDefined(); + expect(mockPage.asset.fontAwesome).toBeUndefined(); + expect(mockPage.asset.glyphicons).toBeUndefined(); + expect(mockPage.asset.octicons).toBeUndefined(); +}); + +test('should filter out all stylesheets', () => { + const mockPageConfig = new PageConfig(); + const mockPage = new Page(mockPageConfig, null); + + mockPage.filterIconAssets('
    ', ''); + + expect(mockPage.asset.materialIcons).toBeUndefined(); + expect(mockPage.asset.fontAwesome).toBeUndefined(); + expect(mockPage.asset.glyphicons).toBeUndefined(); + expect(mockPage.asset.octicons).toBeUndefined(); +});