Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Geogebra material-id implemented using implicit slate #2238

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

dbrianwalton
Copy link
Contributor

Revised the implementation of interactive[@geogebra] so that during assembly this is converted to adopt an implicit slate such that the Geogebra applet can be loaded directly rather than rely on the less-reliable URL approach for accessing material-ids.

Consists of two commits in order to separate out the removal of the original template that accessed the material using a coded Geogebra URL.

I don't have access to a pool of test cases, so I have only been able to test a few examples.

@dbrianwalton
Copy link
Contributor Author

@rbeezer Can you pay particular attention to line 1760 in pretext-assembly.xsl where I create the slate and assign an auto-generated xml:id. Based on the stage we are in during assembly, I think it is valid to use @assembly-id of the interactive to generate a new id, but I'm still trying to grasp all of the different ids/labels and their appropriate uses.

@rbeezer
Copy link
Collaborator

rbeezer commented Jul 30, 2024

I'm still trying to grasp all of the different ids/labels and their appropriate uses.

Me, too. I'll give it a hard look.

@dbrianwalton
Copy link
Contributor Author

If you think this looks good, I'll also update the sample-article to give updated instructions. Need to have material-width on the interactive to push into the slate. Also, I added additional flags for geogebra control (zoom-controls). I should have another commit for this quickly.

@rbeezer
Copy link
Collaborator

rbeezer commented Aug 2, 2024

Well, this became a production, huh? Visual inspection looks good.

I'm leery of having too many "passes" in the assembly phase. Will we run out of memory with too many different copies of the entire source? (Or is there good garbage collection?) I don't really know, but I'd lean towards not adding a new pass just for GeoGebra. Do you think it could be part of "assembly"? I first thought of "augment", but I think I will reserve that for numbering.

I think @assembly-id is right at this point. Do we want to manufacture an @xml:id or a @label? I guess the former is more consistent. Any generated value (such as the -ggb-slate prefix runs the risk the author has an @xml:id somewhere else which is identical. But I guess that is rare enough to not be such a problem.

Not seeing anything else big right now. I'll try to take this for a real drive very soon.

@dbrianwalton
Copy link
Contributor Author

I think this is contained enough that it could easily merge into a different stage of assembly. I couldn't clearly identify which existing stage made the most sense, but looking at what I could find just now about assembly, I don't anticipate a complication. I see that this does include some organization of exercise, and a geogebra element could exist in such a setting, but should not really disrupt the assembly restructuring since everything is contained within an interactive.

@dbrianwalton
Copy link
Contributor Author

I started exploring putting this in assembly. I need some guaranteed id to build the slate's id, but assembly occurs before assembly-id is generated. So then I switched to the "enrichment" stage and seem to be getting identical assembly-dynamic results between the two. I'll push this additional commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants