Runestone constructs: harmonize sample book, development schema, and code - #3128
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The sample book's Runestone chapters produced 217 errors against the
development schema. A three-way audit — what the samples author, what
the XSL actually reads (the interactive builders, the static
representations, and the assembly's classifier, which stamps
exercise, the project-like blocks, andtaskalike), and what theschema models — showed nearly all of it was the schema trailing the
implemented feature set, with a handful of genuine sample defects.
This branch closes the gap from all three sides. After it: the sample
book validates with exactly one error (a
@reduceplacement questionparked for #3047 or the FITB maintainer), and the sample article's
count drops from eleven to zero.
The commits:
72bfa84 (HTML) Authored slate markup is copied by local name
only. An HTML page is this content's sole destination, and HTML
parsers have no notion of namespaces — so the XHTML namespace
becomes purely a source-side validation marker, declared once (a
prefix on the
slate), with plain HTML tags in the output. Themode (
copy-authored-xml) is not slate-specific and could serveother embedded markup.
9a8a299 (Sample book) Four conformance repairs (a bare-text
statement, a
pwrapping an image, a straypinside alisting,a trailing paragraph now a proper
conclusion), and the show-evaldemonstration declares
xmlns:xhtmlonce on itsslate, authoringxhtml:buttonand kin.afcf71c (Schema) A
taskhosts the same interactive forms as anexercise— the classifier always treated them alike.6459c40 (Schema)
choices/@multiple-correct,choices/@cols, achoice holding several blocks, and
query/@visibility.9cc3f82 (Schema) Codelens
checkpointprompts and feedback aremarked-up text, not block sequences;
program/@starting-stepis theinteger the trace extractor arithmetics on, not a yes/no; and
program/@datafilejoins its long attribute list.00cfcdc (Schema) Parsons, both layouts:
@database,blocks/@reuseand
@numbered,block/@nameand@depends(partial-ordergrading), the
@ref/@xml:idblock-reuse pair, inline content forhorizontal blocks, exercise-level
tests— and the model'spreamble/postamblebecome theprogram-preambleandprogram-postamblethe code and samples have always used, standingas their own named patterns so a future unification with a
program's interior preamble/postamble stays a contained decision.
b2c67fa (Schema) A
matchholds premises and a response in eitherorder, and either side alone is a distractor.
c3859d4 (Schema) Clickable areas in their three authored forms —
paragraphs,
clinecode (with@language), andtabularcells —freely interleaved, trailing components in any order.
83e9cf8 (Schema) The
selectexercise, whole:@questionsliststhe variant questions,
@gradesays how the graded variant ischosen (random, A/B experiment, first-with-others-viewable, or the
reader's pick),
@experiment-namefor the A/B case.8c8e6bb (Schema) The legacy fill-in (
setup/var/condition),fully modeled — the machinery is completely implemented, interactive
and static — with the literate source stating plainly that this form
will NEVER move to the stable schema; its only future is retirement.
45602a4 (Schema) Dynamic fill-in growth: a bare
evalorconstructor as a test's comparison shorthand (the assembly
substitutes the full form),
de-expression/@context, text-levelfeedback,solution/@include-automatic.4628eb3 (Schema) Timed exams (
@time-limitwith theresults,timer,feedback,pausetoggles) and group work(
@groupwork/@groupsize) on their hosting divisions.d7ce0f3 (Schema)
datafile/@hide; avideomay carry atitle,which the Runestone manifest consumes.
8079c50 (Schema) The dual (dynamic-plus-static) exercise, modeled
minimally and marked experimental, matching the sample's own alert.
5f6a6bd (Schema) Slate housekeeping: the no-namespace
inputand aredundant
xhtml:buttonspecial case are gone; the wildcard'scomment explains the namespace-as-foreign-marker principle and the
declare-once idiom.
a3b1555 (Sample book) Five stale prose references to
docinfo/programsnow readdocinfo/defaults/programs, thelocation the code prefers, the schema models, and the book itself
uses.
Nearly all modeling deliberately lives in the development overlay; the
base schema changes are confined to the
programelement, the videotitle, and one tabular-cell extension. Under the stable schema the
book's count falls 322 to 289 — the Runestone frontier remains
development-schema territory by design.
Testing: every schema regeneration is idempotent; the Guide holds its
two-error baseline; a full before/after HTML build of the sample book
differs in exactly the pages the source repairs touch, each verified
intended (including the show-eval page, whose buttons now arrive as
plain HTML tags with no namespace residue); and the sample article's
slate output sheds its now-pointless
xmlnsattributes whilerendering identically.
Claude Fable 5, acting as a coding assistant for Rob Beezer