Compare commits
No commits in common. "f2bca309f5b7fa1124992d34c056ef34df23333a" and "328464670d83f23905f543357a827be59194e9ec" have entirely different histories.
f2bca309f5
...
328464670d
7 changed files with 50 additions and 58 deletions
|
@ -7,5 +7,3 @@ export const sanitizeMediaString = (input) => {
|
|||
|
||||
return slugified.replace(/^-+|-+$/g, '');
|
||||
}
|
||||
|
||||
export const removeUrlProtocol = (url) => url ? url.replace(/^https?:\/\//, '') : '';
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import inquirer from 'inquirer';
|
||||
import { loadConfig } from '../config.js';
|
||||
import { initDirectusClient, searchItems, createItem } from '../directus/client.js';
|
||||
import { removeUrlProtocol } from '../sanitize.js';
|
||||
|
||||
export const addLinkToShare = async () => {
|
||||
const config = await loadConfig();
|
||||
|
@ -69,15 +68,10 @@ export const addLinkToShare = async () => {
|
|||
type: 'list',
|
||||
name: 'author',
|
||||
message: 'Select an author:',
|
||||
choices: authorMatches.map(a => {
|
||||
const cleanUrl = removeUrlProtocol(a.url);
|
||||
const display = cleanUrl ? `${a.name} (${cleanUrl})` : a.name;
|
||||
|
||||
return {
|
||||
name: display,
|
||||
choices: authorMatches.map(a => ({
|
||||
name: a.name || a.id,
|
||||
value: a.id,
|
||||
};
|
||||
})
|
||||
}))
|
||||
});
|
||||
|
||||
author = response.author;
|
||||
|
|
4
cli/package-lock.json
generated
4
cli/package-lock.json
generated
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "coryd",
|
||||
"version": "3.2.1",
|
||||
"version": "3.2.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "coryd",
|
||||
"version": "3.2.1",
|
||||
"version": "3.2.0",
|
||||
"dependencies": {
|
||||
"@directus/sdk": "^19.1.0",
|
||||
"chalk": "^5.4.1",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "coryd",
|
||||
"version": "3.2.1",
|
||||
"version": "3.2.0",
|
||||
"description": "The CLI for my site to run scripts, manage and download assets.",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
|
|
18
package-lock.json
generated
18
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "coryd.dev",
|
||||
"version": "9.1.8",
|
||||
"version": "9.1.7",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "coryd.dev",
|
||||
"version": "9.1.8",
|
||||
"version": "9.1.7",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"minisearch": "^7.1.2",
|
||||
|
@ -31,7 +31,7 @@
|
|||
"postcss-import": "^16.1.0",
|
||||
"postcss-import-ext-glob": "^2.1.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"terser": "^5.42.0",
|
||||
"terser": "^5.41.0",
|
||||
"truncate-html": "^1.2.1"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -1385,9 +1385,9 @@
|
|||
"license": "MIT"
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.5.166",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.166.tgz",
|
||||
"integrity": "sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==",
|
||||
"version": "1.5.165",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.165.tgz",
|
||||
"integrity": "sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
|
@ -4091,9 +4091,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/terser": {
|
||||
"version": "5.42.0",
|
||||
"resolved": "https://registry.npmjs.org/terser/-/terser-5.42.0.tgz",
|
||||
"integrity": "sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==",
|
||||
"version": "5.41.0",
|
||||
"resolved": "https://registry.npmjs.org/terser/-/terser-5.41.0.tgz",
|
||||
"integrity": "sha512-H406eLPXpZbAX14+B8psIuvIr8+3c+2hkuYzpMkoE0ij+NdsVATbA78vb8neA/eqrj7rywa2pIkdmWRsXW6wmw==",
|
||||
"dev": true,
|
||||
"license": "BSD-2-Clause",
|
||||
"dependencies": {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "coryd.dev",
|
||||
"version": "9.1.8",
|
||||
"version": "9.1.7",
|
||||
"description": "The source for my personal site. Built using 11ty (and other tools).",
|
||||
"type": "module",
|
||||
"engines": {
|
||||
|
@ -51,7 +51,7 @@
|
|||
"postcss-import": "^16.1.0",
|
||||
"postcss-import-ext-glob": "^2.1.1",
|
||||
"rimraf": "^6.0.1",
|
||||
"terser": "^5.42.0",
|
||||
"terser": "^5.41.0",
|
||||
"truncate-html": "^1.2.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,64 +1,64 @@
|
|||
window.addEventListener('load', () => {
|
||||
window.addEventListener("load", () => {
|
||||
// service worker
|
||||
if ('serviceWorker' in navigator) navigator.serviceWorker.register('/assets/scripts/sw.js');
|
||||
|
||||
// dialog controls
|
||||
(() => {
|
||||
const dialogButtons = document.querySelectorAll('.dialog-open');
|
||||
const dialogButtons = document.querySelectorAll(".dialog-open");
|
||||
if (!dialogButtons.length) return;
|
||||
|
||||
dialogButtons.forEach((button) => {
|
||||
const dialogId = button.getAttribute('data-dialog-trigger');
|
||||
const dialogId = button.getAttribute("data-dialog-trigger");
|
||||
const dialog = document.getElementById(`dialog-${dialogId}`);
|
||||
if (!dialog) return;
|
||||
|
||||
const closeButton = dialog.querySelector('.dialog-close');
|
||||
const closeButton = dialog.querySelector(".dialog-close");
|
||||
|
||||
button.addEventListener('click', async () => {
|
||||
button.addEventListener("click", async () => {
|
||||
const isDynamic = dialog.dataset.dynamic;
|
||||
const isLoaded = dialog.dataset.loaded;
|
||||
|
||||
if (isDynamic && !isLoaded) {
|
||||
const markdownFields = dialog.dataset.markdown || '';
|
||||
const markdownFields = dialog.dataset.markdown || "";
|
||||
try {
|
||||
const res = await fetch(`/api/query.php?data=${isDynamic}&id=${dialogId}&markdown=${encodeURIComponent(markdownFields)}`);
|
||||
const [data] = await res.json();
|
||||
const firstField = markdownFields.split(',')[0]?.trim();
|
||||
const html = data?.[`${firstField}_html`] || '<p>No notes available.</p>';
|
||||
const firstField = markdownFields.split(",")[0]?.trim();
|
||||
const html = data?.[`${firstField}_html`] || "<p>No notes available.</p>";
|
||||
|
||||
dialog.querySelectorAll('.dialog-dynamic').forEach((el) => el.remove());
|
||||
dialog.querySelectorAll(".dialog-dynamic").forEach((el) => el.remove());
|
||||
|
||||
const container = document.createElement('div');
|
||||
const container = document.createElement("div");
|
||||
|
||||
container.classList.add('dialog-dynamic');
|
||||
container.classList.add("dialog-dynamic");
|
||||
container.innerHTML = html;
|
||||
dialog.appendChild(container);
|
||||
dialog.dataset.loaded = 'true';
|
||||
dialog.dataset.loaded = "true";
|
||||
} catch (err) {
|
||||
dialog.querySelectorAll('.dialog-dynamic').forEach((el) => el.remove());
|
||||
dialog.querySelectorAll(".dialog-dynamic").forEach((el) => el.remove());
|
||||
|
||||
const errorNode = document.createElement('div');
|
||||
const errorNode = document.createElement("div");
|
||||
|
||||
errorNode.classList.add('dialog-dynamic');
|
||||
errorNode.textContent = 'Failed to load content.';
|
||||
errorNode.classList.add("dialog-dynamic");
|
||||
errorNode.textContent = "Failed to load content.";
|
||||
dialog.appendChild(errorNode);
|
||||
|
||||
console.warn('Dialog content load error:', err);
|
||||
console.warn("Dialog content load error:", err);
|
||||
}
|
||||
}
|
||||
|
||||
dialog.showModal();
|
||||
dialog.classList.remove('closing');
|
||||
dialog.classList.remove("closing");
|
||||
});
|
||||
|
||||
if (closeButton) {
|
||||
closeButton.addEventListener('click', () => {
|
||||
dialog.classList.add('closing');
|
||||
closeButton.addEventListener("click", () => {
|
||||
dialog.classList.add("closing");
|
||||
setTimeout(() => dialog.close(), 200);
|
||||
});
|
||||
}
|
||||
|
||||
dialog.addEventListener('click', (event) => {
|
||||
dialog.addEventListener("click", (event) => {
|
||||
const rect = dialog.getBoundingClientRect();
|
||||
const outsideClick =
|
||||
event.clientX < rect.left ||
|
||||
|
@ -67,14 +67,14 @@ window.addEventListener('load', () => {
|
|||
event.clientY > rect.bottom;
|
||||
|
||||
if (outsideClick) {
|
||||
dialog.classList.add('closing');
|
||||
dialog.classList.add("closing");
|
||||
setTimeout(() => dialog.close(), 200);
|
||||
}
|
||||
});
|
||||
|
||||
dialog.addEventListener('cancel', (event) => {
|
||||
dialog.addEventListener("cancel", (event) => {
|
||||
event.preventDefault();
|
||||
dialog.classList.add('closing');
|
||||
dialog.classList.add("closing");
|
||||
setTimeout(() => dialog.close(), 200);
|
||||
});
|
||||
});
|
||||
|
@ -82,23 +82,23 @@ window.addEventListener('load', () => {
|
|||
|
||||
// text toggle for media pages
|
||||
(() => {
|
||||
const button = document.querySelector('[data-toggle-button]');
|
||||
const content = document.querySelector('[data-toggle-content]');
|
||||
const text = document.querySelectorAll('[data-toggle-content] p');
|
||||
const button = document.querySelector("[data-toggle-button]");
|
||||
const content = document.querySelector("[data-toggle-content]");
|
||||
const text = document.querySelectorAll("[data-toggle-content] p");
|
||||
const minHeight = 500; // this needs to match the height set on [data-toggle-content].text-toggle-hidden in text-toggle.css
|
||||
const interiorHeight = Array.from(text).reduce((acc, node) => acc + node.scrollHeight, 0);
|
||||
|
||||
if (!button || !content || !text.length) return;
|
||||
|
||||
if (interiorHeight < minHeight) {
|
||||
content.classList.remove('text-toggle-hidden');
|
||||
button.style.display = 'none';
|
||||
content.classList.remove("text-toggle-hidden");
|
||||
button.style.display = "none";
|
||||
return;
|
||||
}
|
||||
|
||||
button.addEventListener('click', () => {
|
||||
const isHidden = content.classList.toggle('text-toggle-hidden');
|
||||
button.textContent = isHidden ? 'Show more' : 'Show less';
|
||||
button.addEventListener("click", () => {
|
||||
const isHidden = content.classList.toggle("text-toggle-hidden");
|
||||
button.textContent = isHidden ? "Show more" : "Show less";
|
||||
});
|
||||
})();
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue