diff --git a/design/author.md b/design/author.md index 9150939..05ce3a6 100644 --- a/design/author.md +++ b/design/author.md @@ -468,6 +468,42 @@ to 3,000. Nineteen things the code does not say by itself: play, and the third reached npm and built with it. The first three had the tool swapped for a stand-in that logged its runs, and each refused to run it, as it should: a test serves the file as it is. +- **A source's own fields are written where a chat reads, and the author is asked for** + (2026-11-11, #182). The owner's run in ChatGPT on 0.9.1 wrote a quiz with no `authors`. Each + of the 28 content types the skill lists refuses a source without `title`, `language`, + `license` or `authors` (each built with `params` alone), and each type's own required fields + are marked in its file's Fields section; but every type file's example is `type` and `params`, + and since #180 a chat reads it. Of the four, only the author has nothing to fall back on: the + language comes from the request, the licence is `U`. The owner's flow, the same day: the + content type, chosen with the user; then the author and licence, asked once the type is chosen, + which the user gives or skips, each on its own: a name they skip is the one the model knows + them by, or "Unknown", a licence they skip `U`, what they gave stays, and never a name made + up; then the source; then the build the environment allows best, said to the user. So + `SKILL.md` names that order before step 1, step 1 asks for the type and then the author and + licence, step 2's first point says every source names the four, step 3 + opens with the three ways to build and what each needs (npm here, two files here, the build + page in the user's browser, with no attempt here first where nothing runs or fetches), and + `schemaMarkdown` writes the same under each content type's Fields heading + (`SOURCE_FIELDS`; not a part's, which is sub-content), for a chat that has the type file + alone, as the build page hands it over. It says the example is `type` and `params` alone rather + than the example holding the four: a name written in an example would be copied as the author + and build, where the model is to ask. Measured on Haiku in the chat stand-in (a fetch tool + that opens only whole addresses, npm cut off, a scripted user who answers when asked): with + 0.9.1's text and a Question Set named, two of three runs asked for the author, from the brief's + list, and the third wrote "Quiz author" and built. With the flow, a quiz asked for and neither + type nor author named: until step 1 said that "a quiz" names no type, four of six runs chose + the Question Set themselves, three of them asking for the author in the same message; since, + all four proposed two types and waited, then asked for the author and licence on their own, + and wrote the name given or, on a skip, "Unknown" and `U`. Every package plays. The skip was + first written for both at once ("a skip takes the name you know them by, or "Unknown", and + the licence `U`"), which cubic's review of #183 read as replacing a name the user gave when + they skip only the licence. Haiku did not read it so: three runs on that text (a name and no + licence, a licence and no name, the author named in the request and the licence skipped) kept + what was given. It is written out all the same, each on its own and only what is missing asked + for, so that no reader has to guess: on the new text five of five runs (those three, both + skipped, both given) wrote what was given and the default for what was skipped, and the run + with the author named in the request asked for the licence alone. Those eight packages play + too. Not built: editing an existing package, which a tool beside it does with `checkContent` as its check; layout for Drag and Drop and Crossword; and any judgement of whether content is right, which diff --git a/packages/author/lib/schema.mjs b/packages/author/lib/schema.mjs index 07a1435..e50c3ea 100644 --- a/packages/author/lib/schema.mjs +++ b/packages/author/lib/schema.mjs @@ -220,9 +220,20 @@ export function withSection(text, section, name) { return `${text.slice(0, start)}${section}${text.slice(end + GENERATED_END.length)}` } +/** + * What a source of any content type names beside its fields. A type file's example shows only + * `type` and `params`, and a chat that copies it left the author out, the one of them it has no + * value of its own for (#182). The example says so here rather than holding them: a name written + * in it would be copied as the author and build, where the model is to ask for what the user + * has not given, and to write for a name they skip the one it knows them by, or "Unknown", and + * for a licence they skip `U`, each on its own: what they gave stays. A part other content + * holds has none: it is sub-content. + */ +export const SOURCE_FIELDS = 'The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author\'s name and the licence are the user\'s: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`.' + /** * The generated section of a type file: the fields, under a heading, between markers that a - * refresh rewrites. + * refresh rewrites, and for a content type what a source names beside them. * @param {any} library its `library.json` * @param {any[]} semantics * @param {SchemaOptions} [options] @@ -234,6 +245,7 @@ export function schemaMarkdown(library, semantics, options = {}) { '', `## Fields of ${library.machineName} ${library.majorVersion}.${library.minorVersion}`, '', + ...(library.runnable ? [SOURCE_FIELDS, ''] : []), ...fields, '', interfaceTexts diff --git a/packages/author/tests/layout.test.ts b/packages/author/tests/layout.test.ts index a83a552..7c5803f 100644 --- a/packages/author/tests/layout.test.ts +++ b/packages/author/tests/layout.test.ts @@ -4,7 +4,7 @@ import { join } from 'node:path' import { afterAll, beforeAll, describe, expect, it } from 'vitest' import { buildPackage, SourceError } from '../lib/author.mjs' import { imageSize } from '../lib/media.mjs' -import { GENERATED_END, GENERATED_START, schemaLines, schemaMarkdown, withSection } from '../lib/schema.mjs' +import { GENERATED_END, GENERATED_START, schemaLines, schemaMarkdown, SOURCE_FIELDS, withSection } from '../lib/schema.mjs' import { jpeg, png } from './helpers/media' const META = { title: 'Layout', language: 'en', license: 'U', authors: [{ name: 'Ann Author', role: 'Author' }] } @@ -276,6 +276,18 @@ describe('the schema a source is written from', () => { expect(markdown.startsWith(`${GENERATED_START}\n\n## Fields of H5P.Test 1.2\n`)).toBe(true) expect(markdown.endsWith(`\`h5p-author schema H5P.Test --all\` lists them, for a source to set one.\n\n${GENERATED_END}`)).toBe(true) }) + + it('says what a content type\'s source names beside its fields, the author asked of the user, and not for a part (#182)', () => { + const type = schemaMarkdown({ machineName: 'H5P.Test', majorVersion: 1, minorVersion: 2, runnable: 1 }, semantics) + expect(type.startsWith(`${GENERATED_START}\n\n## Fields of H5P.Test 1.2\n\n${SOURCE_FIELDS}\n\n- `)).toBe(true) + for (const field of ['`title`', '`language`', '`license`', '`authors`']) expect(SOURCE_FIELDS).toContain(field) + expect(SOURCE_FIELDS).toContain('all four required') + expect(SOURCE_FIELDS).toContain('The example is `type` and `params` alone') + expect(SOURCE_FIELDS).toContain('ask for what they have not given') + expect(SOURCE_FIELDS).toContain('For a name they skip, write the one you know them by, or "Unknown"') + expect(SOURCE_FIELDS).toContain('for a licence they skip, `U`') + expect(schemaMarkdown({ machineName: 'H5P.Test', majorVersion: 1, minorVersion: 2, runnable: 0 }, semantics)).not.toContain(SOURCE_FIELDS) + }) }) describe('what a file is', () => { diff --git a/skills/h5p-author/SKILL.md b/skills/h5p-author/SKILL.md index 07866f1..00f13a7 100644 --- a/skills/h5p-author/SKILL.md +++ b/skills/h5p-author/SKILL.md @@ -17,10 +17,22 @@ With this text alone and none of its files beside it, open https://missing-eleme first and take every address from it: it writes out in full each file this text names and each file step 3 fetches, and a fetch tool may refuse an address put together from a name. -## 1. Choose the content type with the user +Work in this order, one question at a time: the content type, chosen with the user; then the +author and licence, which they give or skip; then the source; then the build, the best way this +environment allows. -Read [the brief](./references/authoring.md) once. If the user named no type, propose one or -two that fit the material and objective, a sentence each on why, and wait for their choice. +## 1. Choose the content type, then the author and licence, with the user + +Read [the brief](./references/authoring.md) once. Unless the user named a type from the table +below, propose one or two that fit the material and objective, a sentence each on why, ask them +to choose, and wait: "a quiz" or "flash cards" says what they want, not which type. Ask nothing +else in that message. + +Once they have chosen, ask in a message of its own for the author's name and the licence, only +for what they have not given yet, and say they may skip; then wait. What they gave stays as they +gave it. A name they skip is the one you know them by, or "Unknown"; a licence they skip is `U` +(undisclosed). Every source names its author and the build refuses one without, but never write +a name made up for them. | Type | Use it for | |---|---| @@ -75,6 +87,9 @@ from what you know of the type: the build says, for each place that is wrong, wh } ``` +- Every source names its own `title`, `language`, `license` and `authors` beside `type` and + `params`, as above, whatever a type file's example leaves out; the author and licence are the + ones step 1 settled. - `params` holds only fields that differ from their defaults. Never interface texts (Check, Retry…): they come from the libraries' translations for `language`. - Text is plain, or markup with only the tags a field marked `html` lists. @@ -87,6 +102,17 @@ from what you know of the type: the build says, for each place that is wrong, wh ## 3. Build +Build the best way this environment allows, and tell the user which you take: + +- **Here, with npm**: a shell that reaches the npm registry (Claude Code, a terminal). The + command below. +- **Here, from two files**: Node runs and files can be fetched, but npm cannot install, as in + ChatGPT. *If it cannot install here*, below. +- **In the user's browser**: nothing here runs, or nothing fetches, as in Gemini or a chat with + no tools. *The build page*, below, with no attempt here first. + +Take the first that applies, and the next if it fails. + Build in a working folder of your own, not in the folder the user named: ```bash diff --git a/skills/h5p-author/references/authoring.md b/skills/h5p-author/references/authoring.md index 5d44e80..3fa47c2 100644 --- a/skills/h5p-author/references/authoring.md +++ b/skills/h5p-author/references/authoring.md @@ -13,10 +13,13 @@ Use what the user already gave. Ask for what is missing and matters: texts too, from their own translations, which are often incomplete. - **Media**, for a type that needs them: files the user has, or web addresses they may use, with who made them and under which licence. -- **Author and licence**: the author's name, and the licence for the whole, an H5P code: `U` +- **Author and licence**, asked once the type is chosen: the author's name, which every source + needs, and the licence for the whole, an H5P code: `U` (undisclosed, when unknown), `CC BY`, `CC BY-SA`, `CC BY-ND`, `CC BY-NC`, `CC BY-NC-SA`, `CC BY-NC-ND`, `CC0 1.0`, `CC PDM`, `GNU GPL`, `PD`, `ODC PDDL` or `C`; `licenseVersion` - `4.0` for a CC BY one. Never choose a licence the user has not. + `4.0` for a CC BY one. The user may skip either: a name they skip is the one you know them + by, or "Unknown", and a licence they skip is `U`. What they gave stays. Never make up a name, + or choose a licence the user has not. - **A pass mark**, for scored content an LMS records, and what a learner who passes or fails is told. - **Where it goes**: an LMS, a website, a file to hand out. diff --git a/skills/h5p-author/references/types/H5P.Accordion.md b/skills/h5p-author/references/types/H5P.Accordion.md index 638abdd..809a62a 100644 --- a/skills/h5p-author/references/types/H5P.Accordion.md +++ b/skills/h5p-author/references/types/H5P.Accordion.md @@ -22,6 +22,8 @@ Text in panels that open on a click, for reference material a learner looks up. ## Fields of H5P.Accordion 1.0 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `panels` list 1–100 of, required — Panels - `title` text, required — Title - `content` sub-content: H5P.AdvancedText, required — Content type diff --git a/skills/h5p-author/references/types/H5P.Audio.md b/skills/h5p-author/references/types/H5P.Audio.md index 78be586..23baa72 100644 --- a/skills/h5p-author/references/types/H5P.Audio.md +++ b/skills/h5p-author/references/types/H5P.Audio.md @@ -18,6 +18,8 @@ An audio player. On its own it suits a listening task beside other content; in a ## Fields of H5P.Audio 1.5 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `files` audio files, required — Source files - `playerMode` one of "minimalistic" | "full" | "transparent" = "minimalistic" — Player mode: Select the layout of the player. - `fitToWrapper` boolean = false; only when playerMode is "minimalistic" or playerMode is "full" — Fit to wrapper diff --git a/skills/h5p-author/references/types/H5P.Blanks.md b/skills/h5p-author/references/types/H5P.Blanks.md index 2689695..6567efe 100644 --- a/skills/h5p-author/references/types/H5P.Blanks.md +++ b/skills/h5p-author/references/types/H5P.Blanks.md @@ -26,6 +26,8 @@ Text with gaps the learner types the missing words into. For recall of exact wor ## Fields of H5P.Blanks 1.14 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `media` group — Media - `type` sub-content: H5P.Image | H5P.Video | H5P.Audio — Type: Optional media to display above the question. - `disableImageZooming` boolean = false; only when type is "H5P.Image 1.1" — Disable image zooming diff --git a/skills/h5p-author/references/types/H5P.BranchingScenario.md b/skills/h5p-author/references/types/H5P.BranchingScenario.md index c6ab023..9295eb1 100644 --- a/skills/h5p-author/references/types/H5P.BranchingScenario.md +++ b/skills/h5p-author/references/types/H5P.BranchingScenario.md @@ -38,6 +38,8 @@ A story in which the learner's choices lead to different paths and endings: deci ## Fields of H5P.BranchingScenario 1.11 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `branchingScenario` group — Branching Scenario Editor - `title` text, required — Title - `startScreen` group — Start screen diff --git a/skills/h5p-author/references/types/H5P.Column.md b/skills/h5p-author/references/types/H5P.Column.md index 6097d57..26bb70a 100644 --- a/skills/h5p-author/references/types/H5P.Column.md +++ b/skills/h5p-author/references/types/H5P.Column.md @@ -24,6 +24,8 @@ A page of content one below another: text, pictures, video and questions, in the ## Fields of H5P.Column 1.22 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `content` list 1+ of, required — List of Column Content - `content` sub-content: H5P.Accordion | H5P.Agamotto | H5P.Audio | H5P.AudioRecorder | H5P.Blanks | H5P.Chart | H5P.Collage | H5P.CoursePresentation | H5P.Dialogcards | H5P.DocumentationTool | H5P.DragQuestion | H5P.DragText | H5P.Essay | H5P.GuessTheAnswer | H5P.Table | H5P.AdvancedText | H5P.IFrameEmbed | H5P.Image | H5P.ImageHotspots | H5P.ImageHotspotQuestion | H5P.ImageSlider | H5P.InteractiveVideo | H5P.Link | H5P.MarkTheWords | H5P.MemoryGame | H5P.MultiChoice | H5P.Questionnaire | H5P.QuestionSet | H5P.Row | H5P.SingleChoiceSet | H5P.Summary | H5P.Timeline | H5P.TrueFalse | H5P.Video | H5P.MultiMediaChoice, required — Content - `useSeparator` one of "auto" | "disabled" | "enabled" = "auto" — Separate content with a horizontal ruler diff --git a/skills/h5p-author/references/types/H5P.CoursePresentation.md b/skills/h5p-author/references/types/H5P.CoursePresentation.md index 81e4274..1689745 100644 --- a/skills/h5p-author/references/types/H5P.CoursePresentation.md +++ b/skills/h5p-author/references/types/H5P.CoursePresentation.md @@ -38,6 +38,8 @@ Slides with text, pictures, video and questions; a summary slide with the score ## Fields of H5P.CoursePresentation 1.27 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `presentation` group - `slides` list of - `elements` list of diff --git a/skills/h5p-author/references/types/H5P.Dialogcards.md b/skills/h5p-author/references/types/H5P.Dialogcards.md index 5792cf2..6fbc514 100644 --- a/skills/h5p-author/references/types/H5P.Dialogcards.md +++ b/skills/h5p-author/references/types/H5P.Dialogcards.md @@ -24,6 +24,8 @@ Flash cards: a prompt on the front, the answer on the back, turned by the learne ## Fields of H5P.Dialogcards 1.9 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `title` html: strong em code — Heading - `mode` one of "normal" | "repetition" = "normal" — Mode: Mode of presenting the dialog cards - `description` html: strong em code — Task description diff --git a/skills/h5p-author/references/types/H5P.Dictation.md b/skills/h5p-author/references/types/H5P.Dictation.md index 36ed0a6..29f33e3 100644 --- a/skills/h5p-author/references/types/H5P.Dictation.md +++ b/skills/h5p-author/references/types/H5P.Dictation.md @@ -25,6 +25,8 @@ The learner hears sentences and types them; the content compares what was typed ## Fields of H5P.Dictation 1.3 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `media` group — Media - `type` sub-content: H5P.Image | H5P.Video | H5P.Audio — Type: Optional media to display above the question. - `disableImageZooming` boolean = false; only when type is "H5P.Image 1.1" — Disable image zooming diff --git a/skills/h5p-author/references/types/H5P.DragText.md b/skills/h5p-author/references/types/H5P.DragText.md index 4116fc3..6f31520 100644 --- a/skills/h5p-author/references/types/H5P.DragText.md +++ b/skills/h5p-author/references/types/H5P.DragText.md @@ -23,6 +23,8 @@ Text with gaps the learner fills by dragging words from a list. Easier than typi ## Fields of H5P.DragText 1.10 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `media` group — Media - `type` sub-content: H5P.Image | H5P.Video | H5P.Audio — Type: Optional media to display above the question. - `disableImageZooming` boolean = false; only when type is "H5P.Image 1.1" — Disable image zooming diff --git a/skills/h5p-author/references/types/H5P.Essay.md b/skills/h5p-author/references/types/H5P.Essay.md index f2b5747..8e0611d 100644 --- a/skills/h5p-author/references/types/H5P.Essay.md +++ b/skills/h5p-author/references/types/H5P.Essay.md @@ -27,6 +27,8 @@ The learner writes a text, scored by the keywords it contains, with feedback per ## Fields of H5P.Essay 1.5 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `media` group — Media - `type` sub-content: H5P.Image | H5P.Video | H5P.Audio — Type: Optional media to display above the question. - `disableImageZooming` boolean = false; only when type is "H5P.Image 1.1" — Disable image zooming diff --git a/skills/h5p-author/references/types/H5P.GameMap.md b/skills/h5p-author/references/types/H5P.GameMap.md index 20f7e3f..b2dfc2e 100644 --- a/skills/h5p-author/references/types/H5P.GameMap.md +++ b/skills/h5p-author/references/types/H5P.GameMap.md @@ -40,6 +40,8 @@ A map with stages, each holding exercises; finishing a stage opens the stages jo ## Fields of H5P.GameMap 1.5 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `showTitleScreen` boolean = false — Show title screen - `titleScreen` group — Title screen - `titleScreenIntroduction` html: sub sup strong em code u del a ul ol hr pre code = "
" — Introduction diff --git a/skills/h5p-author/references/types/H5P.ImageHotspotQuestion.md b/skills/h5p-author/references/types/H5P.ImageHotspotQuestion.md index ba24422..8bf99da 100644 --- a/skills/h5p-author/references/types/H5P.ImageHotspotQuestion.md +++ b/skills/h5p-author/references/types/H5P.ImageHotspotQuestion.md @@ -31,6 +31,8 @@ A picture in which the learner clicks the right area: a part of a diagram, a pla ## Fields of H5P.ImageHotspotQuestion 1.8 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `imageHotspotQuestion` group — Image Hotspot Question Editor - `backgroundImageSettings` image file, required — Background image - `hotspotSettings` group — Hotspots diff --git a/skills/h5p-author/references/types/H5P.ImageHotspots.md b/skills/h5p-author/references/types/H5P.ImageHotspots.md index 9ea7644..d333712 100644 --- a/skills/h5p-author/references/types/H5P.ImageHotspots.md +++ b/skills/h5p-author/references/types/H5P.ImageHotspots.md @@ -26,6 +26,8 @@ A picture with spots that open text, a picture, audio or video when clicked: a l ## Fields of H5P.ImageHotspots 1.11 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `image` image file, required — Background image - `backgroundImageAltText` text — Alternative text for background image: If the browser can't load the image this text will be displayed instead. Also used by assistive technologies. - `globalIconType` one of "icon" | "image" | "numbers" = "icon" — Global hotspot Icon diff --git a/skills/h5p-author/references/types/H5P.ImagePair.md b/skills/h5p-author/references/types/H5P.ImagePair.md index 8397479..6d47139 100644 --- a/skills/h5p-author/references/types/H5P.ImagePair.md +++ b/skills/h5p-author/references/types/H5P.ImagePair.md @@ -24,6 +24,8 @@ Two columns of pictures; the learner drags each one on the left onto its match o ## Fields of H5P.ImagePair 1.4 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `taskDescription` text = "Drag images from the left to match them with… — Task Description: A guide telling the user how to solve this task. - `cards` list 2–100 of, required — Cards - `image` image file, required — Image diff --git a/skills/h5p-author/references/types/H5P.ImageSequencing.md b/skills/h5p-author/references/types/H5P.ImageSequencing.md index 3ae58ce..ebb9c4a 100644 --- a/skills/h5p-author/references/types/H5P.ImageSequencing.md +++ b/skills/h5p-author/references/types/H5P.ImageSequencing.md @@ -24,6 +24,8 @@ Pictures shown shuffled, which the learner puts in order: stages of a process, a ## Fields of H5P.ImageSequencing 1.1 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `taskDescription` text = "Drag to arrange the images in the correct se… — Task Description: A guide telling the user how to solve this task. - `altTaskDescription` text = "Make the following list be ordered correctly… — Alternate Task Description: A guide intended for visually impaired users on how to solve this task. - `sequenceImages` list 3+ of, required — Images diff --git a/skills/h5p-author/references/types/H5P.InteractiveBook.md b/skills/h5p-author/references/types/H5P.InteractiveBook.md index 795c68b..ddbe69c 100644 --- a/skills/h5p-author/references/types/H5P.InteractiveBook.md +++ b/skills/h5p-author/references/types/H5P.InteractiveBook.md @@ -32,6 +32,8 @@ A book of chapters with a table of contents, each chapter a page of text, media ## Fields of H5P.InteractiveBook 1.15 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `showCoverPage` boolean = false — Enable book cover - `bookCover` group; only when showCoverPage is true — Cover Page - `coverDescription` html: sub sup strong em code u del a ul ol h1 h2 h3 h4 h5 h6 pre hr table = "" — Cover description: This text will be the description of your book. diff --git a/skills/h5p-author/references/types/H5P.InteractiveVideo.md b/skills/h5p-author/references/types/H5P.InteractiveVideo.md index a821a1c..e019eb8 100644 --- a/skills/h5p-author/references/types/H5P.InteractiveVideo.md +++ b/skills/h5p-author/references/types/H5P.InteractiveVideo.md @@ -38,6 +38,8 @@ A video with questions, text and links appearing over it at set times, a bookmar ## Fields of H5P.InteractiveVideo 1.28 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `interactiveVideo` group — Interactive Video Editor - `video` group — Upload/embed video - `files` video files, required — Add a video diff --git a/skills/h5p-author/references/types/H5P.MarkTheWords.md b/skills/h5p-author/references/types/H5P.MarkTheWords.md index 475c0a3..98dabcb 100644 --- a/skills/h5p-author/references/types/H5P.MarkTheWords.md +++ b/skills/h5p-author/references/types/H5P.MarkTheWords.md @@ -21,6 +21,8 @@ A text in which the learner clicks the words that fit a rule: every verb, every ## Fields of H5P.MarkTheWords 1.11 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `media` group — Media - `type` sub-content: H5P.Image | H5P.Video | H5P.Audio — Type: Optional media to display above the question. - `disableImageZooming` boolean = false; only when type is "H5P.Image 1.1" — Disable image zooming diff --git a/skills/h5p-author/references/types/H5P.MemoryGame.md b/skills/h5p-author/references/types/H5P.MemoryGame.md index dacdfa7..07bf673 100644 --- a/skills/h5p-author/references/types/H5P.MemoryGame.md +++ b/skills/h5p-author/references/types/H5P.MemoryGame.md @@ -24,6 +24,8 @@ Cards face down, turned two at a time, until every pair is found. ## Fields of H5P.MemoryGame 1.3 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `cards` list 2–100 of, required — Cards - `image` image file, required — Image - `imageAlt` text, required — Alternative text for Image: Describe what can be seen in the photo. The text is read by text-to-speech tools needed by visually impaired users. diff --git a/skills/h5p-author/references/types/H5P.MultiChoice.md b/skills/h5p-author/references/types/H5P.MultiChoice.md index 38cdf9a..c055a62 100644 --- a/skills/h5p-author/references/types/H5P.MultiChoice.md +++ b/skills/h5p-author/references/types/H5P.MultiChoice.md @@ -28,6 +28,8 @@ One question, two or more answers, one or several of them correct, with feedback ## Fields of H5P.MultiChoice 1.16 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `media` group — Media - `type` sub-content: H5P.Image | H5P.Video | H5P.Audio — Type: Optional media to display above the question. - `disableImageZooming` boolean = false; only when type is "H5P.Image 1.1" — Disable image zooming diff --git a/skills/h5p-author/references/types/H5P.MultiMediaChoice.md b/skills/h5p-author/references/types/H5P.MultiMediaChoice.md index dc5617d..a6b0553 100644 --- a/skills/h5p-author/references/types/H5P.MultiMediaChoice.md +++ b/skills/h5p-author/references/types/H5P.MultiMediaChoice.md @@ -24,6 +24,8 @@ A multiple-choice question whose answers are pictures. ## Fields of H5P.MultiMediaChoice 0.3 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `media` group — Media - `type` sub-content: H5P.Image | H5P.Video | H5P.Audio — Type: Optional media to display above the question. - `disableImageZooming` boolean = false; only when type is "H5P.Image 1.1" — Disable image zooming diff --git a/skills/h5p-author/references/types/H5P.QuestionSet.md b/skills/h5p-author/references/types/H5P.QuestionSet.md index bddb509..5d17662 100644 --- a/skills/h5p-author/references/types/H5P.QuestionSet.md +++ b/skills/h5p-author/references/types/H5P.QuestionSet.md @@ -47,6 +47,8 @@ A quiz: questions one after another, then a result page with the score. ## Fields of H5P.QuestionSet 1.21 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `introPage` group — Quiz introduction - `showIntroPage` boolean — Display introduction - `title` text — Title: This title will be displayed above the introduction text. diff --git a/skills/h5p-author/references/types/H5P.Questionnaire.md b/skills/h5p-author/references/types/H5P.Questionnaire.md index 0b73778..6b847cb 100644 --- a/skills/h5p-author/references/types/H5P.Questionnaire.md +++ b/skills/h5p-author/references/types/H5P.Questionnaire.md @@ -31,6 +31,8 @@ A survey: open questions and multiple-choice questions with no right answer, the ## Fields of H5P.Questionnaire 1.3 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `questionnaireElements` list 1+ of, required — Questionnaire elements - `library` sub-content: H5P.OpenEndedQuestion | H5P.SimpleMultiChoice, required — Library: Choose a library - `requiredField` boolean = false — Required field diff --git a/skills/h5p-author/references/types/H5P.SingleChoiceSet.md b/skills/h5p-author/references/types/H5P.SingleChoiceSet.md index f5e1000..07adc58 100644 --- a/skills/h5p-author/references/types/H5P.SingleChoiceSet.md +++ b/skills/h5p-author/references/types/H5P.SingleChoiceSet.md @@ -23,6 +23,8 @@ Quick questions, one after another, each with one right answer of two to four; t ## Fields of H5P.SingleChoiceSet 1.11 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `choices` list 1+ of, required — List of questions - `question` html: strong em code, required — Question - `answers` list 2–4 of html: strong em code, required — Alternatives - first alternative is the correct one. diff --git a/skills/h5p-author/references/types/H5P.SortParagraphs.md b/skills/h5p-author/references/types/H5P.SortParagraphs.md index 8296111..d8b8ed1 100644 --- a/skills/h5p-author/references/types/H5P.SortParagraphs.md +++ b/skills/h5p-author/references/types/H5P.SortParagraphs.md @@ -26,6 +26,8 @@ Paragraphs shown shuffled, which the learner puts in order: steps of a process, ## Fields of H5P.SortParagraphs 0.11 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `media` group — Media - `type` sub-content: H5P.Image | H5P.Video | H5P.Audio — Type: Optional media to display above the question. - `disableImageZooming` boolean = false; only when type is "H5P.Image 1.1" — Disable image zooming diff --git a/skills/h5p-author/references/types/H5P.Summary.md b/skills/h5p-author/references/types/H5P.Summary.md index ac8bf70..6e56947 100644 --- a/skills/h5p-author/references/types/H5P.Summary.md +++ b/skills/h5p-author/references/types/H5P.Summary.md @@ -24,6 +24,8 @@ The learner builds a summary statement by statement, picking the true one from e ## Fields of H5P.Summary 1.10 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `intro` html: strong em u a ul ol h2 h3 hr pre code = "Choose the correct statement." — Introduction text: Will be displayed above the summary task. - `summaries` list 1–100 of, required — Summary - `summary` list 2+ of html, required — List of statements for the summary - the first statement is correct. diff --git a/skills/h5p-author/references/types/H5P.Timeline.md b/skills/h5p-author/references/types/H5P.Timeline.md index 67d25da..4316cdb 100644 --- a/skills/h5p-author/references/types/H5P.Timeline.md +++ b/skills/h5p-author/references/types/H5P.Timeline.md @@ -29,6 +29,8 @@ Events along a time line, each with a date, a headline and a text, browsed in or ## Fields of H5P.Timeline 1.1 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `timeline` group — Timeline - `headline` text, required — Headline: Main timeline heading goes here (first page) - `text` html: strong em del a ul ol hr code — Body Text: The main timeline body goes here (first page). diff --git a/skills/h5p-author/references/types/H5P.TrueFalse.md b/skills/h5p-author/references/types/H5P.TrueFalse.md index cc4627e..59f6bb8 100644 --- a/skills/h5p-author/references/types/H5P.TrueFalse.md +++ b/skills/h5p-author/references/types/H5P.TrueFalse.md @@ -26,6 +26,8 @@ One statement the learner marks true or false. ## Fields of H5P.TrueFalse 1.8 +The example is `type` and `params` alone, and `params` holds the fields below. A source also names its own `title`, `language`, `license` and `authors`, all four required: the build refuses a source that leaves out any of them. The author's name and the licence are the user's: ask for what they have not given. For a name they skip, write the one you know them by, or "Unknown"; for a licence they skip, `U`. + - `media` group — Media - `type` sub-content: H5P.Image | H5P.Video | H5P.Audio — Type: Optional media to display above the question. - `disableImageZooming` boolean = false; only when type is "H5P.Image 1.1" — Disable image zooming