Hi community. I am new to Perchance and coding in general but am so happy it exists! I searched the post archives, but couldn't find anything about this. Apologies if this has already been covered.
Is it possible to hyperlink part of the generator's output? For example, in this generator (https://perchance.org/wrongquotes), if I wanted to hyperlink the name of the person who said the quote so it points to another URL, is that possible?
I tried using a a href tag but that doesn't work, also tried adding a 'url' property to the 'source' object but that didn't work either.
I suppose a workaround could be to just display the full url as part of the displayed text, but just curious if a more elegant solution exists.
You need to make the quoteSourceEl to be an <a> tag e.g. <a id="quoteSourceEl" class="source" href="#"></a> , then after you add a href value, it would be a hyperlink.
On how you have your data, you can probably just add a url property for each instance of the source e.g.:
{
name: "original",
label: "Original",
placeholder: "Click the button below to generate an original quote.",
data: [
{
quote: "Happiness beckons you once you forget you were looking for it.",
source: "Eleanor Trent, 'Where's Joy?'",
url: "link here"
},
{
quote: "Memory is just the past asking for a permanent residence permit.",
source: "Dr. Selim Farouk, 'The Mind's Archive'",
url: "another link here"
},
{
quote: "No one knows how Sentience is born, but we sure know how to kill it.",
source: "Dr. Marcus Webb, 'The Philosophy of Consciousness'",
url: "link here"
},
...
Then you can access it with .url (quoteEntry.url) and set it as the href of the quoteSourceEl.
Thank you. I attempted this but I ran into an error.
I added a test category where I associated unique urls with different quotes as you outlined above. The preview window showed an error message as soon as I made this change: "In the function called getQuotes within your lists editor, near line number 12, there's a mistake in your code that's causing this error: Unexpected identifier 'url'."
I assumed it was because I didn't add in quoteEntry.url yet in the HTML/CSS editor, so I made that change as well, but the error persists. So now I'm wondering if I did the <a> tag correctly.
Is this written correctly?: <a id="quoteSourceEl" target="_blank" class="source" href="quoteEntry.url"></a>
And is the <a> tag the only place where I need to reference quoteEntry.url?
You can set the href through your code, not directly on the HTML e.g.:
// function generateMisquote()
...
// Select quote from array if necessary
const original = selectQuote(quoteEntry.original);
const misquoted = selectQuote(quoteEntry.misquoted);
const source = selectQuote(quoteEntry.source);
const url = quoteEntry.url // get the url link
...
// Update after a short delay for the fade-out effect
setTimeout(function() {
// Display the misquoted quote and source
quoteTextEl.textContent = misquoted.text;
quoteSourceEl.textContent = `— ${source.text}`;
quoteSourceEl.href = url; // set the href based on the url link
...