mirror of
https://github.com/Kornstalx/5etools-mirror-2.github.io.git
synced 2025-10-28 20:45:35 -05:00
v1.209.0
This commit is contained in:
@@ -4,8 +4,7 @@
|
||||
* This script assumes the user has a symlink to the image repo as "img".
|
||||
*/
|
||||
|
||||
import * as fs from "fs";
|
||||
import * as ut from "./util.js";
|
||||
import fs from "fs";
|
||||
|
||||
function cleanBestiaryFluffImages () {
|
||||
console.log(`##### Cleaning bestiary fluff images #####`);
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
"use strict";
|
||||
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import * as ut from "./util.js";
|
||||
|
||||
import "../js/parser.js";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import * as ut from "./util.js";
|
||||
import "../js/utils.js";
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Can be used to inspect which HTML files depend on which scripts.
|
||||
*/
|
||||
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import * as ut from "./util.js";
|
||||
import "../js/utils.js";
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import * as ut from "./util.js";
|
||||
|
||||
import "../js/parser.js";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import "../js/parser.js";
|
||||
import "../js/utils.js";
|
||||
import * as utB from "./util-book-reference.js";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import sharp from "sharp";
|
||||
import * as ut from "./util.js";
|
||||
import "../js/parser.js";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import "../js/parser.js";
|
||||
import "../js/utils.js";
|
||||
import * as ut from "./util.js";
|
||||
|
||||
@@ -6,7 +6,8 @@ class _PageGeneratorManagebrew extends PageGeneratorManagerBase {
|
||||
_pageTitle = "Manage Homebrew";
|
||||
_navbarDescription = "View, Add, and Delete Homebrew.";
|
||||
|
||||
_scripts = [
|
||||
_scriptsModules = [
|
||||
"manageexternal/manageexternal-utils.js",
|
||||
"managebrew.js",
|
||||
];
|
||||
}
|
||||
@@ -17,7 +18,8 @@ class _PageGeneratorManageprerelease extends PageGeneratorManagerBase {
|
||||
_pageTitle = "Manage Prerelease Content";
|
||||
_navbarDescription = "View, Add, and Delete Prerelease Content.";
|
||||
|
||||
_scripts = [
|
||||
_scriptsModules = [
|
||||
"manageexternal/manageexternal-utils.js",
|
||||
"manageprerelease.js",
|
||||
];
|
||||
}
|
||||
|
||||
@@ -406,7 +406,7 @@ class _PageGeneratorSearch extends PageGeneratorGeneric {
|
||||
"search",
|
||||
];
|
||||
|
||||
_scripts = [
|
||||
_scriptsModules = [
|
||||
"search.js",
|
||||
];
|
||||
}
|
||||
|
||||
@@ -25,8 +25,6 @@ export class PageGeneratorBase {
|
||||
}
|
||||
|
||||
_registerPartials () {
|
||||
this._registerPartial({ident: "overlayNoise", filename: "misc/template-overlay-noise.hbs"});
|
||||
|
||||
this._registerPartial({ident: "head", filename: "head/template-head.hbs"});
|
||||
|
||||
this._registerPartial({ident: "adRhs", filename: "ad/template-ad-rhs.hbs"});
|
||||
@@ -40,6 +38,8 @@ export class PageGeneratorBase {
|
||||
this._registerPartial({ident: "scripts", filename: "scripts/template-scripts.hbs"});
|
||||
|
||||
this._registerPartial({ident: "blank", filename: "misc/template-blank.hbs"});
|
||||
this._registerPartial({ident: "btngroupManager", filename: "misc/template-btngroup-manager.hbs"});
|
||||
this._registerPartial({ident: "overlayNoise", filename: "misc/template-overlay-noise.hbs"});
|
||||
}
|
||||
|
||||
getPage () { return this._page; }
|
||||
@@ -292,8 +292,4 @@ export class PageGeneratorManagerBase extends PageGeneratorGeneric {
|
||||
_scriptsUtilsAdditional = [
|
||||
"utils-list.js",
|
||||
];
|
||||
|
||||
_scriptsModules = [
|
||||
"manageexternal/manageexternal-utils.js",
|
||||
];
|
||||
}
|
||||
|
||||
@@ -31,8 +31,8 @@
|
||||
<!-- populate with JS -->
|
||||
</div>
|
||||
|
||||
<div class="ve-text-center mt-3 no-print">
|
||||
<button class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
|
||||
<div class="ve-flex-vh-center mt-3 no-print">
|
||||
{{> "btngroupManager" }}
|
||||
</div>
|
||||
|
||||
<hr class="hr-3 mt-4">
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
|
||||
<div class="ve-flex-vh-center my-3">
|
||||
<button class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
|
||||
{{> "btngroupManager" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-9" id="classtable"></div>
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
|
||||
{{> "listWrpPagecontent" }}
|
||||
|
||||
<div class="ve-text-center mt-2 no-print best-ecgen__hidden">
|
||||
<button type="button" class="btn btn-success btn-xs" id="btn-encounterbuild">Encounter Builder</button>
|
||||
<div id="wrp-profbonusdice" class="ve-inline-block">
|
||||
<div class="ve-flex-vh-center mt-2 no-print best-ecgen__hidden">
|
||||
<button type="button" class="btn btn-success btn-xs mr-2" id="btn-encounterbuild">Encounter Builder</button>
|
||||
<div id="wrp-profbonusdice" class="ve-flex-v-center mr-2">
|
||||
<button type="button" class="btn btn-default btn-xs" id="profbonusdice" title="See the Dungeon Master's Guide, p263.">Use Proficiency Dice</button>
|
||||
</div>
|
||||
<button type="button" class="btn btn-default btn-xs" id="btn-book">Printer View</button>
|
||||
<button type="button" class="btn btn-default btn-xs" id="btn-show-table" title="View and Download Creatures in Tabular Format">Table View</button>
|
||||
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
|
||||
<button type="button" class="btn btn-default btn-xs mr-2" id="btn-book">Printer View</button>
|
||||
<button type="button" class="btn btn-default btn-xs mr-2" id="btn-show-table" title="View and Download Creatures in Tabular Format">Table View</button>
|
||||
{{> "btngroupManager" }}
|
||||
</div>
|
||||
|
||||
<div class="best-ecgen__visible--flex-col best-ecgen__wrp pb-1 px-2" id="wrp-encounterbuild-group-and-difficulty"></div>
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
|
||||
{{> "listWrpPagecontent" }}
|
||||
|
||||
<div class="ve-text-center mt-2 no-print">
|
||||
<button type="button" class="btn btn-default btn-xs" id="btn-book">Printer View</button>
|
||||
<button type="button" class="btn btn-default btn-xs" id="btn-show-table" title="View and Download Items in Tabular Format">Table View</button>
|
||||
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
|
||||
<div class="ve-flex-vh-center mt-2 no-print">
|
||||
<button type="button" class="btn btn-default btn-xs mr-2" id="btn-book">Printer View</button>
|
||||
<button type="button" class="btn btn-default btn-xs mr-2" id="btn-show-table" title="View and Download Items in Tabular Format">Table View</button>
|
||||
{{> "btngroupManager" }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
|
||||
{{> "listWrpPagecontent" }}
|
||||
|
||||
<div class="ve-text-center mt-2 no-print">
|
||||
<button type="button" class="btn btn-default btn-xs" id="btn-book">Book View</button>
|
||||
<button type="button" class="btn btn-default btn-xs" id="btn-show-table" title="View and Download Psionics in Tabular Format">Table View</button>
|
||||
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
|
||||
<div class="ve-flex-vh-center mt-2 no-print">
|
||||
<button type="button" class="btn btn-default btn-xs mr-2" id="btn-book">Book View</button>
|
||||
<button type="button" class="btn btn-default btn-xs mr-2" id="btn-show-table" title="View and Download Psionics in Tabular Format">Table View</button>
|
||||
{{> "btngroupManager" }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
|
||||
<div class="split-v-center mt-2 no-print">
|
||||
<div class="ve-small ve-muted italic mr-2" title="We gratefully accept any and all corrections in our Discord, a link to which can be found on the homepage.">Please note that allergen and other dietary information may be incomplete and/or inaccurate.</div>
|
||||
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
|
||||
{{> "btngroupManager" }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
|
||||
{{> "listWrpPagecontent" }}
|
||||
|
||||
<div class="ve-text-center mt-2 no-print">
|
||||
<button type="button" class="btn btn-default btn-xs" id="btn-book">Book View</button>
|
||||
<button type="button" class="btn btn-default btn-xs" id="btn-show-table" title="View and Download Spells in Tabular Format">Table View</button>
|
||||
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
|
||||
<button type="button" class="btn btn-default btn-xs" id="btn-list-settings" title="Settings"><span class="glyphicon glyphicon-cog"></span></button>
|
||||
<div class="ve-flex-vh-center mt-2 no-print">
|
||||
<button type="button" class="btn btn-default btn-xs mr-2" id="btn-book">Book View</button>
|
||||
<button type="button" class="btn btn-default btn-xs mr-2" id="btn-show-table" title="View and Download Spells in Tabular Format">Table View</button>
|
||||
{{> "btngroupManager" }}
|
||||
<button type="button" class="btn btn-default btn-xs ml-2" id="btn-list-settings" title="Settings"><span class="glyphicon glyphicon-cog"></span></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div class="ve-text-center mt-2 no-print">
|
||||
<div class="ve-flex-vh-center mt-2 no-print">
|
||||
{{#if isPrinterView}}
|
||||
<button type="button" class="btn btn-default btn-xs" id="btn-book">Printer View</button>
|
||||
<button type="button" class="btn btn-default btn-xs mr-2" id="btn-book">Printer View</button>
|
||||
{{/if}}
|
||||
<button type="button" class="btn btn-xs btn-info" id="manage-brew">Manage Homebrew</button>
|
||||
{{> "btngroupManager" }}
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<div class="ve-flex-v-center btn-group" id="btngroup-manager">
|
||||
<button type="button" class="btn btn-xs btn-primary" name="manage-content">Manage Content</button>
|
||||
<button type="button" class="btn btn-xs btn-primary" name="manage-prerelease" title="Manage Prerelease Content"><span class="glyphicon glyphicon-wrench"></span></button>
|
||||
<button type="button" class="btn btn-xs btn-info" name="manage-brew" title="Manage Homebrew"><span class="glyphicon glyphicon-glass"></span></button>
|
||||
</div>
|
||||
@@ -1,29 +1,29 @@
|
||||
<script type="text/javascript" src="lib/jquery.js"></script>
|
||||
{{#each scriptsLibAdditional}}<script type="text/javascript" src="lib/{{this}}"></script>
|
||||
<script type="text/javascript" defer src="lib/jquery.js"></script>
|
||||
{{#each scriptsLibAdditional}}<script type="text/javascript" defer src="lib/{{this}}"></script>
|
||||
{{/each}}
|
||||
{{#each scriptsLibAdditionalRemote}}<script type="text/javascript" src="{{this}}"></script>
|
||||
{{#each scriptsLibAdditionalRemote}}<script type="text/javascript" defer src="{{this}}"></script>
|
||||
{{/each}}
|
||||
<script type="text/javascript" src="js/parser.js"></script>
|
||||
<script type="text/javascript" src="js/utils.js"></script>
|
||||
<script type="text/javascript" src="js/utils-ui.js"></script>
|
||||
<script type="text/javascript" src="lib/localforage.js"></script>
|
||||
<script type="text/javascript" src="js/omnidexer.js"></script>
|
||||
<script type="text/javascript" src="js/omnisearch.js"></script>
|
||||
<script type="text/javascript" src="js/filter.js"></script>
|
||||
<script type="text/javascript" src="js/utils-dataloader.js"></script>
|
||||
<script type="text/javascript" src="js/utils-brew.js"></script>
|
||||
<script type="text/javascript" defer src="js/parser.js"></script>
|
||||
<script type="text/javascript" defer src="js/utils.js"></script>
|
||||
<script type="text/javascript" defer src="js/utils-ui.js"></script>
|
||||
<script type="text/javascript" defer src="lib/localforage.js"></script>
|
||||
<script type="text/javascript" defer src="js/omnidexer.js"></script>
|
||||
<script type="module" src="js/omnisearch.js"></script>
|
||||
<script type="module" src="js/filter.js"></script>
|
||||
<script type="text/javascript" defer src="js/utils-dataloader.js"></script>
|
||||
<script type="module" src="js/utils-brew.js"></script>
|
||||
<script type="module" src="js/utils-config.js"></script>
|
||||
{{#each scriptsUtilsAdditional}}<script type="text/javascript" src="js/{{this}}"></script>
|
||||
{{#each scriptsUtilsAdditional}}<script type="text/javascript" defer src="js/{{this}}"></script>
|
||||
{{/each}}
|
||||
<script type="text/javascript" src="js/render.js"></script>
|
||||
<script type="text/javascript" src="js/render-dice.js"></script>
|
||||
{{#each scriptsRenderAdditional}}<script type="text/javascript" src="js/{{this}}"></script>
|
||||
<script type="text/javascript" defer src="js/render.js"></script>
|
||||
<script type="text/javascript" defer src="js/render-dice.js"></script>
|
||||
{{#each scriptsRenderAdditional}}<script type="text/javascript" defer src="js/{{this}}"></script>
|
||||
{{/each}}
|
||||
<script type="text/javascript" src="js/scalecreature.js"></script>
|
||||
<script type="text/javascript" src="js/hist.js"></script>
|
||||
{{#each scripts}}<script type="text/javascript" src="js/{{this}}"></script>
|
||||
<script type="text/javascript" defer src="js/scalecreature.js"></script>
|
||||
<script type="text/javascript" defer src="js/hist.js"></script>
|
||||
{{#each scripts}}<script type="text/javascript" defer src="js/{{this}}"></script>
|
||||
{{/each}}
|
||||
{{#each scriptsModules}}<script type="module" src="js/{{this}}"></script>
|
||||
{{/each}}
|
||||
<script type="text/javascript" src="js/list2.js"></script>
|
||||
<script type="text/javascript" src="lib/elasticlunr.js"></script>
|
||||
<script type="text/javascript" defer src="js/list2.js"></script>
|
||||
<script type="text/javascript" defer src="lib/elasticlunr.js"></script>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import "../js/parser.js";
|
||||
import * as utB from "./util-book-reference.js";
|
||||
|
||||
|
||||
@@ -1,14 +1,26 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import {Command} from "commander";
|
||||
import "../js/parser.js";
|
||||
import "../js/utils.js";
|
||||
import "../js/utils-ui.js";
|
||||
import "../js/render.js";
|
||||
import "../js/render-dice.js";
|
||||
import "../js/hist.js";
|
||||
import "../js/filter.js";
|
||||
import "../js/utils-brew.js";
|
||||
import * as utS from "./util-search-index.js";
|
||||
import {Timer} from "./util.js";
|
||||
|
||||
const program = new Command()
|
||||
.option("--partnered", `If the partnered content index is to be generated.`)
|
||||
;
|
||||
|
||||
program.parse(process.argv);
|
||||
const params = program.opts();
|
||||
|
||||
async function main () {
|
||||
const t = Timer.start();
|
||||
|
||||
console.log("##### Creating primary index... #####");
|
||||
const index = await utS.UtilSearchIndex.pGetIndex();
|
||||
fs.writeFileSync("search/index.json", JSON.stringify(index), "utf8");
|
||||
@@ -21,6 +33,13 @@ async function main () {
|
||||
console.log("##### Creating Foundry index... #####");
|
||||
const indexFoundry = await utS.UtilSearchIndex.pGetIndexFoundry();
|
||||
fs.writeFileSync("search/index-foundry.json", JSON.stringify(indexFoundry), "utf8");
|
||||
|
||||
if (params.partnered) {
|
||||
console.log("##### Creating partnered content index... #####");
|
||||
const indexPartnered = await utS.UtilSearchIndex.pGetIndexPartnered();
|
||||
fs.writeFileSync("search/index-partnered.json", JSON.stringify(indexPartnered), "utf8");
|
||||
}
|
||||
|
||||
console.log(`Created indexes in ${Timer.stop(t)}`);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Generator script which creates stub per-entity pages for SEO.
|
||||
*/
|
||||
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import "../js/parser.js";
|
||||
import "../js/utils.js";
|
||||
import "../js/utils-dataloader.js";
|
||||
@@ -40,7 +40,7 @@ const getTemplate = ({page, name, source, hash, img, textStyle, isFluff}) => `<!
|
||||
<!--5ETOOLS_CMP-->
|
||||
<!--5ETOOLS_ANALYTICS-->
|
||||
<!--5ETOOLS_ADCODE-->
|
||||
<meta charset="utf-8"><meta name="description" content=""><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"><meta name="apple-mobile-web-app-capable" content="yes"><title>5etools</title><link rel="stylesheet" href="/css/bootstrap.css?v=${version}"><link rel="stylesheet" href="/css/main.css"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="icon" type="image/png" sizes="256x256" href="/favicon-256x256.png"><link rel="icon" type="image/png" sizes="144x144" href="/favicon-144x144.png"><link rel="icon" type="image/png" sizes="128x128" href="/favicon-128x128.png"><link rel="icon" type="image/png" sizes="64x64" href="/favicon-64x64.png"><link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/manifest.webmanifest"><meta name="application-name" content="5etools"><meta name="theme-color" content="#006bc4"><meta name="msapplication-config" content="browserconfig.xml"/><meta name="msapplication-TileColor" content="#006bc4"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon-180x180.png"><link rel="apple-touch-icon" sizes="360x360" href="/apple-touch-icon-360x360.png"><link rel="apple-touch-icon" sizes="167x167" href="/apple-touch-icon-167x167.png"><link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png"><link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png"><meta name="apple-mobile-web-app-title" content="5etools"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#006bc4"><meta property="og:title" content="${name}"><meta property="og:url" content="${BASE_SITE_URL}${page}.html#${hash}">${img ? `<meta property="og:image" content="${BASE_SITE_URL}${img}">` : ""}<link rel="search" href="/open-search.xml" title="Search 5etools" type="application/opensearchdescription+xml"><script type="text/javascript" src="/js/header.js?v=${VERSION_NUMBER}"></script><script>_SEO_PAGE="${page}";_SEO_SOURCE="${source}";_SEO_HASH="${hash}";_SEO_STYLE=${textStyle};_SEO_FLUFF=${isFluff}</script></head><body><div class="overlay-noise"></div><div class="cancer__wrp-sidebar-rhs cancer__anchor"><div class="cancer__disp-cancer"></div><div class="cancer__sidebar-rhs-inner cancer__sidebar-rhs-inner--top"><!--5ETOOLS_AD_RIGHT_1--></div><div class="cancer__sidebar-rhs-inner cancer__sidebar-rhs-inner--bottom"><!--5ETOOLS_AD_RIGHT_2--></div></div><div class="cancer__wrp-leaderboard cancer__anchor"><div class="cancer__disp-cancer"></div><div class="cancer__wrp-leaderboard-inner"><!--5ETOOLS_AD_LEADERBOARD--></div></div><header class="hidden-xs hidden-sm page__header"><div class="container ve-flex-v-baseline"><h1 class="page__title no-wrap my-0"></h1></div></header><nav class="container page__nav" id="navigation"><ul class="nav nav-pills page__nav-inner" id="navbar"></ul></nav><main class="container"><div class="row"><div id="wrp-pagecontent"><table id="pagecontent" class="w-100 stats"><tr><th class="border" colspan="6"></th></tr><tr><td colspan="6" class="initial-message">Loading...</td></tr><tr><th class="border" colspan="6"></th></tr></table></div></div><div class="row" id="link-page"></div></main><script type="text/javascript" src="https://cdn.jsdelivr.net/combine/npm/jquery@3.4.1/dist/jquery.min.js,gh/weixsong/elasticlunr.js@0.9/elasticlunr.min.js"></script><script type="text/javascript" src="/lib/localforage.js"></script></script></script><script type="text/javascript" src="/js/shared.js?v=${VERSION_NUMBER}"></script><script type="text/javascript" src="/js/render-${page}.js?v=${VERSION_NUMBER}"></script><script type="text/javascript" src="/js/seo-loader.js?v=${VERSION_NUMBER}"></script></body></html>`;
|
||||
<meta charset="utf-8"><meta name="description" content=""><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"><meta name="apple-mobile-web-app-capable" content="yes"><title>5etools</title><link rel="stylesheet" href="/css/bootstrap.css?v=${version}"><link rel="stylesheet" href="/css/main.css"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="icon" type="image/png" sizes="256x256" href="/favicon-256x256.png"><link rel="icon" type="image/png" sizes="144x144" href="/favicon-144x144.png"><link rel="icon" type="image/png" sizes="128x128" href="/favicon-128x128.png"><link rel="icon" type="image/png" sizes="64x64" href="/favicon-64x64.png"><link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/manifest.webmanifest"><meta name="application-name" content="5etools"><meta name="theme-color" content="#006bc4"><meta name="msapplication-config" content="browserconfig.xml"/><meta name="msapplication-TileColor" content="#006bc4"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon-180x180.png"><link rel="apple-touch-icon" sizes="360x360" href="/apple-touch-icon-360x360.png"><link rel="apple-touch-icon" sizes="167x167" href="/apple-touch-icon-167x167.png"><link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png"><link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png"><meta name="apple-mobile-web-app-title" content="5etools"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#006bc4"><meta property="og:title" content="${name}"><meta property="og:url" content="${BASE_SITE_URL}${page}.html#${hash}">${img ? `<meta property="og:image" content="${BASE_SITE_URL}${img}">` : ""}<link rel="search" href="/open-search.xml" title="Search 5etools" type="application/opensearchdescription+xml"><script type="text/javascript" defer src="/js/header.js?v=${VERSION_NUMBER}"></script><script>_SEO_PAGE="${page}";_SEO_SOURCE="${source}";_SEO_HASH="${hash}";_SEO_STYLE=${textStyle};_SEO_FLUFF=${isFluff}</script></head><body><div class="overlay-noise"></div><div class="cancer__wrp-sidebar-rhs cancer__anchor"><div class="cancer__disp-cancer"></div><div class="cancer__sidebar-rhs-inner cancer__sidebar-rhs-inner--top"><!--5ETOOLS_AD_RIGHT_1--></div><div class="cancer__sidebar-rhs-inner cancer__sidebar-rhs-inner--bottom"><!--5ETOOLS_AD_RIGHT_2--></div></div><div class="cancer__wrp-leaderboard cancer__anchor"><div class="cancer__disp-cancer"></div><div class="cancer__wrp-leaderboard-inner"><!--5ETOOLS_AD_LEADERBOARD--></div></div><header class="hidden-xs hidden-sm page__header"><div class="container ve-flex-v-baseline"><h1 class="page__title no-wrap my-0"></h1></div></header><nav class="container page__nav" id="navigation"><ul class="nav nav-pills page__nav-inner" id="navbar"></ul></nav><main class="container"><div class="row"><div id="wrp-pagecontent"><table id="pagecontent" class="w-100 stats"><tr><th class="border" colspan="6"></th></tr><tr><td colspan="6" class="initial-message">Loading...</td></tr><tr><th class="border" colspan="6"></th></tr></table></div></div><div class="row" id="link-page"></div></main><script type="text/javascript" defer src="https://cdn.jsdelivr.net/combine/npm/jquery@3.4.1/dist/jquery.min.js,gh/weixsong/elasticlunr.js@0.9/elasticlunr.min.js"></script><script type="text/javascript" defer src="/lib/localforage.js"></script></script></script><script type="text/javascript" defer src="/js/shared.js?v=${VERSION_NUMBER}"></script><script type="text/javascript" defer src="/js/render-${page}.js?v=${VERSION_NUMBER}"></script><script type="text/javascript" defer src="/js/seo-loader.js?v=${VERSION_NUMBER}"></script></body></html>`;
|
||||
|
||||
const getTemplateDev = ({page, name, source, hash, img, textStyle, isFluff}) => `<!DOCTYPE html><html lang="en"><head>
|
||||
<!--5ETOOLS_CMP-->
|
||||
@@ -77,9 +77,9 @@ const getTemplateDev = ({page, name, source, hash, img, textStyle, isFluff}) =>
|
||||
<meta property="og:title" content="${name}">
|
||||
<meta property="og:url" content="${BASE_SITE_URL}${page}.html#${hash}">
|
||||
${img ? `<meta property="og:image" content="${BASE_SITE_URL}${img}">` : ""}
|
||||
<script type="text/javascript" src="/js/styleswitch.js"></script>
|
||||
<script type="text/javascript" src="/js/navigation.js"></script>
|
||||
<script type="text/javascript" src="/js/browsercheck.js"></script>
|
||||
<script type="text/javascript" defer src="/js/styleswitch.js"></script>
|
||||
<script type="text/javascript" defer src="/js/navigation.js"></script>
|
||||
<script type="text/javascript" defer src="/js/browsercheck.js"></script>
|
||||
<script>_SEO_PAGE="${page}";_SEO_SOURCE="${source}";_SEO_HASH="${hash}";_SEO_STYLE=${textStyle};_SEO_FLUFF=${isFluff}</script>
|
||||
</head>
|
||||
<body>
|
||||
@@ -89,23 +89,23 @@ ${img ? `<meta property="og:image" content="${BASE_SITE_URL}${img}">` : ""}
|
||||
<header class="hidden-xs hidden-sm page__header"><div class="container ve-flex-v-baseline"><h1 class="page__title no-wrap my-0"></h1></div></header><nav class="container page__nav" id="navigation"><ul class="nav nav-pills page__nav-inner" id="navbar"></ul></nav>
|
||||
|
||||
<main class="container"><div class="row"><div id="wrp-pagecontent"><table id="pagecontent" class="w-100 stats"><tr><th class="border" colspan="6"></th></tr><tr><td colspan="6" class="initial-message">Loading...</td></tr><tr><th class="border" colspan="6"></th></tr></table></div></div><div class="row" id="link-page"></div></main>
|
||||
<script type="text/javascript" src="/lib/jquery.js"></script>
|
||||
<script type="text/javascript" src="/lib/localforage.js"></script>
|
||||
<script type="text/javascript" src="/lib/elasticlunr.js"></script>
|
||||
<script type="text/javascript" src="/js/parser.js"></script>
|
||||
<script type="text/javascript" src="/js/utils.js"></script>
|
||||
<script type="text/javascript" src="/js/utils-ui.js"></script>
|
||||
<script type="text/javascript" src="/js/omnidexer.js"></script>
|
||||
<script type="text/javascript" src="/js/omnisearch.js"></script>
|
||||
<script type="text/javascript" src="/js/filter.js"></script>
|
||||
<script type="text/javascript" src="/js/utils-dataloader.js"></script>
|
||||
<script type="text/javascript" src="/js/utils-brew.js"></script>
|
||||
<script type="text/javascript" src="/js/render.js"></script>
|
||||
<script type="text/javascript" src="/js/render-dice.js"></script>
|
||||
<script type="text/javascript" src="/js/scalecreature.js"></script>
|
||||
<script type="text/javascript" src="/js/hist.js"></script>
|
||||
<script type="text/javascript" src="/js/render-${page}.js"></script>
|
||||
<script type="text/javascript" src="/js/seo-loader.js"></script></body></html>`;
|
||||
<script type="text/javascript" defer src="/lib/jquery.js"></script>
|
||||
<script type="text/javascript" defer src="/lib/localforage.js"></script>
|
||||
<script type="text/javascript" defer src="/lib/elasticlunr.js"></script>
|
||||
<script type="text/javascript" defer src="/js/parser.js"></script>
|
||||
<script type="text/javascript" defer src="/js/utils.js"></script>
|
||||
<script type="text/javascript" defer src="/js/utils-ui.js"></script>
|
||||
<script type="text/javascript" defer src="/js/omnidexer.js"></script>
|
||||
<script type="module" src="/js/omnisearch.js"></script>
|
||||
<script type="module" src="/js/filter.js"></script>
|
||||
<script type="text/javascript" defer src="/js/utils-dataloader.js"></script>
|
||||
<script type="module" src="/js/utils-brew.js"></script>
|
||||
<script type="text/javascript" defer src="/js/render.js"></script>
|
||||
<script type="text/javascript" defer src="/js/render-dice.js"></script>
|
||||
<script type="text/javascript" defer src="/js/scalecreature.js"></script>
|
||||
<script type="text/javascript" defer src="/js/hist.js"></script>
|
||||
<script type="text/javascript" defer src="/js/render-${page}.js"></script>
|
||||
<script type="text/javascript" defer src="/js/seo-loader.js"></script></body></html>`;
|
||||
|
||||
const toGenerate = [
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// TODO this replaces `generate-subclass-lookup.js` in effect
|
||||
// TODO make a system for generating the same data on homebrew docs
|
||||
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import * as ut from "./util.js";
|
||||
import "../js/parser.js";
|
||||
import "../js/utils.js";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import "../js/parser.js";
|
||||
import "../js/utils.js";
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import "../js/parser.js";
|
||||
import "../js/utils.js";
|
||||
import "../js/render.js";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import "../js/utils.js";
|
||||
import * as ut from "./util.js";
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import * as ut from "./util.js";
|
||||
import "../js/utils.js";
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import * as ut from "./util.js";
|
||||
|
||||
function minifyFolder (folder) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import * as ut from "../util.js";
|
||||
import "../../js/parser.js";
|
||||
import "../../js/utils.js";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import * as ut from "./util.js";
|
||||
import "../js/parser.js";
|
||||
import "../js/utils.js";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import "../js/parser.js";
|
||||
import "../js/utils.js";
|
||||
import probe from "probe-image-size";
|
||||
|
||||
@@ -4,7 +4,7 @@ import "../js/render.js";
|
||||
import "../js/omnidexer.js";
|
||||
import * as ut from "./util.js";
|
||||
|
||||
class UtilSearchIndex {
|
||||
export class UtilSearchIndex {
|
||||
/**
|
||||
* Prefer "core" sources, then official sources, then others.
|
||||
*/
|
||||
@@ -123,6 +123,23 @@ class UtilSearchIndex {
|
||||
ut.unpatchLoadJson();
|
||||
return out;
|
||||
}
|
||||
}
|
||||
|
||||
export {UtilSearchIndex};
|
||||
static async pGetIndexPartnered () {
|
||||
ut.patchLoadJson();
|
||||
|
||||
await Promise.all([
|
||||
PrereleaseUtil.pAddBrewsPartnered({isSilent: true}),
|
||||
BrewUtil2.pAddBrewsPartnered({isSilent: true}),
|
||||
]);
|
||||
|
||||
// TODO(Future) add `PrereleaseUtil` index as required
|
||||
const out = await BrewUtil2.pGetSearchIndex({
|
||||
isDecompress: false,
|
||||
isIncludeExtendedSourceInfo: true,
|
||||
});
|
||||
|
||||
ut.unpatchLoadJson();
|
||||
|
||||
return out;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import "../js/utils.js";
|
||||
import "../js/render.js";
|
||||
import "../js/render-dice.js";
|
||||
|
||||
50
node/util.js
50
node/util.js
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import https from "https";
|
||||
|
||||
function readJson (path) {
|
||||
@@ -96,33 +96,43 @@ class PatchLoadJson {
|
||||
|
||||
static _CACHE_HTTP_REQUEST = {};
|
||||
|
||||
static async _pLoadUrl (url) {
|
||||
if (!url.startsWith("http")) return this._CACHE_HTTP_REQUEST[url] = readJson(url);
|
||||
|
||||
if (process.env.HOMEBREW_REPO_DIR && DataUtil.brew.isUrlUnderDefaultRoot(url)) {
|
||||
const urlLocal = [
|
||||
process.env.HOMEBREW_REPO_DIR.trim(),
|
||||
DataUtil.brew.getUrlRelativeToDefaultRoot(url),
|
||||
]
|
||||
.join("/")
|
||||
.replace(/\/+/g, "/");
|
||||
return this._CACHE_HTTP_REQUEST[url] = readJson(urlLocal);
|
||||
}
|
||||
|
||||
return this._CACHE_HTTP_REQUEST[url] ||= new Promise((resolve, reject) => {
|
||||
https
|
||||
.get(
|
||||
url,
|
||||
resp => {
|
||||
let stack = "";
|
||||
resp.on("data", chunk => stack += chunk);
|
||||
resp.on("end", () => resolve(JSON.parse(stack)));
|
||||
},
|
||||
)
|
||||
.on("error", err => reject(err));
|
||||
});
|
||||
}
|
||||
|
||||
static patchLoadJson () {
|
||||
if (this._PATCH_STACK++) return;
|
||||
|
||||
PatchLoadJson._CACHED = PatchLoadJson._CACHED || DataUtil.loadJSON.bind(DataUtil);
|
||||
|
||||
const pLoadUrl = async url => {
|
||||
if (!url.startsWith("http")) return readJson(url);
|
||||
|
||||
return this._CACHE_HTTP_REQUEST[url] ||= new Promise((resolve, reject) => {
|
||||
https
|
||||
.get(
|
||||
url,
|
||||
resp => {
|
||||
let stack = "";
|
||||
resp.on("data", chunk => stack += chunk);
|
||||
resp.on("end", () => resolve(JSON.parse(stack)));
|
||||
},
|
||||
)
|
||||
.on("error", err => reject(err));
|
||||
});
|
||||
};
|
||||
|
||||
const loadJsonCache = {};
|
||||
DataUtil.loadJSON = (url) => {
|
||||
if (!loadJsonCache[url]) {
|
||||
loadJsonCache[url] = (async () => {
|
||||
const data = await pLoadUrl(url);
|
||||
const data = await this._pLoadUrl(url);
|
||||
await DataUtil.pDoMetaMerge(url, data, {isSkipMetaMergeCache: true});
|
||||
return data;
|
||||
})();
|
||||
@@ -131,7 +141,7 @@ class PatchLoadJson {
|
||||
};
|
||||
|
||||
PatchLoadJson._CACHED_RAW = PatchLoadJson._CACHED_RAW || DataUtil.loadRawJSON.bind(DataUtil);
|
||||
DataUtil.loadRawJSON = async (url) => pLoadUrl(url);
|
||||
DataUtil.loadRawJSON = async (url) => this._pLoadUrl(url);
|
||||
}
|
||||
|
||||
static unpatchLoadJson () {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as fs from "fs";
|
||||
import fs from "fs";
|
||||
import {simpleGit} from "simple-git";
|
||||
import "../js/parser.js";
|
||||
import "../js/utils.js";
|
||||
|
||||
Reference in New Issue
Block a user