Inline Hyperlinks is broken (Update: Not Flexible Windows)

Hey Everyone

This is a follow-up issue which sprung out from this thread: https://intfiction.org/t/help-with-individual-hyperlinks-for-items-and-things/10298/1

After a bit of a break, working with hyperlinks on my project, i decided to look into installing the new version of Flexible Windows from the github (the one Dannii was working), since the new version was revised.

I did make a back-up of the old Flexible Windows version, so i can still roll back to what worked before.

Now it is to my understanding, that Dannii removed all hyperlinks support from Flexible Windows, which means Flexible Windows no longer supports Hyperlinks inside Windows (which makes me sad :frowning: ).

However, after i installed the new Flexible Windows (Version 15/161003 of Flexible Windows (for Glulx only) by Jon Ingold(rewritten by Dannii)), then Inline Hyperlinks simply stopped working.

The version of Inline Hyperlinks in question is this one (Version 3 of Inline Hyperlinks (for Glulx only) by Daniel Stelzer).

This confused me, since there was no error, the links simply wouldā€™nt fire anymore. So i tried to install the seperate ā€œHyperlinks by Danniiā€ to see if this would fix it. This gave me the age old error from before:

Problem. The sentence 'Processing hyperlinks for something is an activity on g-windows'   appears to say two things are the same - I am reading 'Processing hyperlinks for something' and 'activity on g-windows' as two different things, and therefore it makes no sense to say that one is the other: it would be like saying that 'John is Paul'. It would be all right if the second thing were the name of a kind, perhaps with properties: for instance 'Abbey Road is a lighted room' says that something called Abbey Road exists and that it is a 'room', which is a kind I know about, combined with a property called 'lighted' which I also know about.

I then started to roam the forums and learned of a new Inline Hyperlinks by Erik Temple(Version 3/161018 of Inline Hyperlinks (for Glulx only) by Erik Temple), which supposedly should support Inline Hyperlinks for the new Flexible Windows.

I installed that, and got a new error:

Problem. You wrote 'A hyperlink processing rule (this is the default command replacement by hyperlinks rule)'  : but the punctuation here ':' makes me think this should be a definition of a phrase and it doesn't begin as it should, with either 'To' (e.g. 'To flood the riverplain:'), 'Definition:', a name for a rule (e.g. 'This is the devilishly cunning rule:'), 'At' plus a time (e.g. 'At 11:12 PM:' or 'At the time when the clock chimes') or the name of a rulebook, possibly followed by some description of the action or value to apply to (e.g. 'Instead of taking something:' or 'Every turn:').

This confused me even more, because there is no such command to replace in the new Flexible Windows? So why is it there?

Removing that section also removes all errors, but i am still unable to click hyperlinks in-game.

An example of a hyperlink text (for those new to the problem):


The Big Room is a room with printed name "A Very Big Room". "This room is huge, wow.[paragraph break]You can go [all exits]".

To say all exits:
	let count be the number of adjacent rooms;
	if count is greater than 0:
		repeat with Destination running through adjacent rooms:
			let The Way be the best route from the location to The Destination, using even locked doors;
			let Dir be indexed text;
			let Dir be "[Way]" in title case;
			let Dir be "[Dir]";
			say "[link][Way][as][Dir][end link]";
			if Destination is visited:
				say " ([destination])";
			let count be count minus 1;
			if count is 1:
				say " and ";
			else if count > 1:
				say ", ";
		say ". ".

So what exactly are my options? Is Flexible Windows and Inline Hyperlinks just not compatible anymore or is there some update that i missed?

Update:

After having updated Glulx Entry Points and all related extensions, it then seems to be Inline Hyperlinks (both versions by Daniel Stelzer and Erik Temple) that seem to be broken on their own. I made a seperate project, and only loaded Inline Hyperlinks on its own, after reverting to my back-up of Flexible Windows, only to see that the issue still persisted.

This very simple example doesnā€™t work, it loads without errors, but you cannot click any links:

Include Inline Hyperlinks by Erik Temple.

The big room is a room. The description of big room is "[exits]".

The left room is west of the big room.

To say exits:
	let count be the number of adjacent rooms;
	if count is greater than 0:
		repeat with destination running through adjacent rooms:
			let the way be the best route from the location to the destination, using even locked doors;
			let dir be text;
			let dir be "[way]";
			let dir be "[dir]";
			say "[link][way][as]go [dir][end link]";
			let count be count minus 1;
			if count > 0:
				say ", ";
		say ". ".

The versions of all related extensions were retrieved from the github. Can anyone verify me that i am not the only one that canā€™t get this to work?

Versions:

Version 3/161018 of Inline Hyperlinks (for Glulx only) by Erik Temple
Version 3 of Inline Hyperlinks (for Glulx only) by Daniel Stelzer

Version 7/120511 of Text Capture by Eric Eve

Version 10/160919 of Glulx Entry Points (for Glulx only) by Emily Short
Version 1/160919 of Glulx Definitions (for Glulx only) by Dannii Willis
Version 1/160919 of Glk Object Recovery (for Glulx only) by Dannii Willis
Version 1/160919 of Glk Events (for Glulx only) by Dannii Willis

Many thanks for the help!
I donā€™t hope iā€™m too much of a menace on these forums :slight_smile:

let Dir be "[Dir]";

Does this line actually do anything?

No, not initially. The code snippet was just taken from raw state on my project, i didnā€™t really review it since it works fine in practice.

Itā€™s there because i have been messing with the casing of the text printed out, trying to make it uppercase, lowercase or as [way] is, in title case.

It looks like Dannii put the old hyperlink code from Flexible Windows into its own extension: https://github.com/i7/extensions/blob/master/Dannii%20Willis/Hyperlinks.i7x

That may work with the latest version of Flexible Windows. (I havenā€™t tried it.)

Edit: Oops, I see you already tried this. Never mind.

Iā€™ve hardly touched hyperlinks, and I donā€™t think Iā€™ve ever used Inline Hyperlinks, so I canā€™t help. Sorry. :frowning:

Update:

After having updated Glulx Entry Points and all related extensions, it then seems to be Inline Hyperlinks (both versions by Daniel Stelzer and Erik Temple) that seem to be broken on their own. I made a seperate project, and only loaded Inline Hyperlinks on its own, after reverting to my back-up of Flexible Windows, only to see that the issue still persisted.

This very simple example doesnā€™t work, it loads without errors, but you cannot click any links:

[code]Include Inline Hyperlinks by Erik Temple.

The big room is a room. The description of big room is ā€œ[exits]ā€.

The left room is west of the big room.

To say exits:
let count be the number of adjacent rooms;
if count is greater than 0:
repeat with destination running through adjacent rooms:
let the way be the best route from the location to the destination, using even locked doors;
let dir be text;
let dir be ā€œ[way]ā€;
let dir be ā€œ[dir]ā€;
say ā€œ[link][way][as]go [dir][end link]ā€;
let count be count minus 1;
if count > 0:
say ", ";
say ". ".[/code]

The versions of all related extensions were retrieved from the github. Can anyone verify me that i am not the only one that canā€™t get this to work?

Versions:

Version 3/161018 of Inline Hyperlinks (for Glulx only) by Erik Temple
Version 3 of Inline Hyperlinks (for Glulx only) by Daniel Stelzer

Version 7/120511 of Text Capture by Eric Eve

Version 10/160919 of Glulx Entry Points (for Glulx only) by Emily Short
Version 1/160919 of Glulx Definitions (for Glulx only) by Dannii Willis
Version 1/160919 of Glk Object Recovery (for Glulx only) by Dannii Willis
Version 1/160919 of Glk Events (for Glulx only) by Dannii Willis

I can confirm this is still the case, four years on. Inline Hyperlinks works with the Glulx Entry Points (v.10/140425) that come bundled with Inform 7 but Flexible Windows requires a newer version of Glulx Entry Points which makes the links non-functional.

Iā€™m trying my hand at debugging the problem but Iā€™m not an Inform expert at all so Iā€™m a babe in the woods here.

EDIT: So far Iā€™ve ascertained the links are being generated consistently between versions but I think the behavior of some glulx functions have changed. Compatibility tests indicate:

  • Glulxe Entry Points v.10/140425 (stock) ā€” Inline Hyperlinks works!
  • Glulxe Entry Points v.10/200602 ā€” Inline Hyperlinks broken

Perhaps the problem was introduced when some of the extensionā€™s functionality was delegated to Dannii Willisā€™ extensions?

1 Like

Iā€™ve implemented a crude fix for this problem here, in the form of changed to the Glulx Entry Points extension:

This is a hacky fix; hopefully something tidier can be done about the problem.

2 Likes

I think our forum colleague @mirality worked on the hyperlink extension(s) ecosystem a while ago, here are two threads: Hyperlink extension woes - #17 by mirality
and Idea for a unified framework for handling hyperlinks in Inform 7 - #25 by mirality
and his version at the extensions repo:
extensions/Inline Hyperlinks.i7x at master Ā· i7/extensions Ā· GitHub

In an older thread (The Glulx/Glk extensions ecosystem - #15 by aika), thereā€™s a link to a different fix by @aika.

(I havenā€™t tried any of the fixed versions in action, just wanted to cross-link the approaches for reference.)

1 Like

Yep, I was going to post that myself but sadly I had a power cut last night.

Note that if youā€™re using the Windows IDE then you may need to upgrade it before my extension will work properly in the IDE interpreter. It works fine in other interpreters, however.

1 Like

Hello, all ā€”

I was a bit too deep into the problem by the time I was told about Gavinā€™s extension. I ended up submitting a pull request to fix the broken command-replacement pipeline in Glulx Entry Points.

I switched over to @miralityā€™s Inline Hyperlinks anyway ā€” after my patch, the original Inline Hyperlinks works, but only in the default window. Gavinā€™s extension seems to work in all windows.

1 Like