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 @@
+
Relative Link Test This is a relative Intra-Site link in a layout (see link)
+
+
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!
+Relative Link Test This is a relative Intra-Site link in a layout (see link)
+There are glyphicon icons on this panel.
+There are glyphicon icons in this page content.
+Open up console. Only glyphicon stylesheet should be loaded!
+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!
+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!
+Relative Link Test This is a relative Intra-Site link in a layout (see link)
+An octicon icon is supposed to appear here --->
+ +There is an octicon icon in this question.
+There is one octicon icon in this page content.
+Open up console. Only octicon stylesheet should be loaded!
+