Browse Source

Use different method for exporting JS

master v1.0.1
F.W. Dekker 5 months ago
parent
commit
47f6532171
Signed by: FWDekker GPG Key ID: B1B567AF58D6EE0F
  1. 2
      package.json
  2. 20
      src/main/js/main.js

2
package.json

@ -1,6 +1,6 @@
{
"name": "@fwdekker/template",
"version": "1.0.0",
"version": "1.0.1",
"description": "The base template for pages on fwdekker.com.",
"author": "Felix W. Dekker (https://fwdekker.com)",
"license": "MIT",

20
src/main/js/main.js

@ -15,7 +15,7 @@ const stringToHtml = function (string, query) {
* @param q {string} the query string
* @returns {HTMLElement} the element identified by the query string
*/
export const $ = q => document.querySelector(q);
const $ = q => document.querySelector(q);
/**
* Runs the given function once the page is loaded.
@ -25,16 +25,16 @@ export const $ = q => document.querySelector(q);
*
* @param fun {function(...*): *} the function to run
*/
export const doAfterLoad = function (fun) {
const doAfterLoad = function (fun) {
if (document.readyState === "complete") {
fun();
return;
}
const oldOnLoad = window.onload || (() => {
const oldOnLoad = onload || (() => {
});
window.onload = (() => {
onload = (() => {
oldOnLoad();
fun();
});
@ -49,7 +49,7 @@ export const doAfterLoad = function (fun) {
* @param [highlightPath] {String} the path to highlight together with its parents
* @returns {HTMLElement} a base navigation element that will eventually be filled with contents
*/
export const nav = function (highlightPath = "") {
const nav = function (highlightPath = "") {
const base = stringToHtml(
`<ul><li><a href="https://fwdekker.com/">` +
`<div class="logo"><img class="logo" src="https://fwdekker.com/favicon.png" alt="FWDekker" /></div>` +
@ -108,7 +108,7 @@ const unpackEntry = function (entry, path = "/", highlightPath = "") {
* @param [description] {string} the description to display, possibly including HTML
* @returns {HTMLElement} a header element
*/
export const header = function ({title, description}) {
const header = function ({title, description}) {
if (title === undefined && description === undefined)
return stringToHtml(`<header class="header"></header>`, "header");
@ -136,7 +136,7 @@ export const header = function ({title, description}) {
* privacy policy, or `undefined` if the default privacy policy should be used
* @returns {HTMLElement} a footer element
*/
export const footer = function (
const footer = function (
{
author, authorURL, license, licenseURL, vcs, vcsURL, version,
privacyPolicyURL = undefined
@ -176,7 +176,7 @@ const footerLink = function (prefix, text, url, suffix) {
/**
* Unhides the main element on the page and applies default display styling.
*/
export const showPage = function () {
const showPage = function () {
// Flex-based footer positioning, taken from https://stackoverflow.com/a/12253099
const main = $("main");
main.style.display = "flex";
@ -185,3 +185,7 @@ export const showPage = function () {
$("#contents").style.flex = "1";
}
// Export to namespace
fwdekker = {stringToHtml, $, doAfterLoad, nav, header, footer, showPage};

Loading…
Cancel
Save