-
Notifications
You must be signed in to change notification settings - Fork 82
Libraries concept doc and override docs #1425
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
Open
sarina
wants to merge
2
commits into
main
Choose a base branch
from
sarina/libraries-overrides
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
121 changes: 121 additions & 0 deletions
121
source/educators/concepts/instructional_design/content_libraries.rst
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,121 @@ | ||
| .. _Content Libraries Overview: | ||
|
|
||
| Content Libraries Overview | ||
| ########################## | ||
|
|
||
| .. tags:: educator, concept | ||
|
|
||
| In Studio, a Content Library is a centralized repository where you can create, | ||
| manage, and reuse course content across multiple courses. Instead of rebuilding | ||
| the same material in every course, you author content once in a library and add | ||
| it to as many courses as you need. When you update content in a library and | ||
| publish those changes, courses that use that content can sync to the latest | ||
| version centrally. | ||
|
|
||
| Content Libraries support all levels of course content, including individual | ||
| components (such as text, problems, and video), units, subsections, and | ||
| sections. | ||
|
|
||
| .. image:: /_images/educator_how_tos/library_homepage.png | ||
| :alt: The Library Homepage with content units in individual tiles | ||
|
|
||
| What You Can Do with Content Libraries | ||
| *************************************** | ||
|
|
||
| Create and Organize Content | ||
| ============================ | ||
|
|
||
| You can author any level of course content directly in a library, using the | ||
| same editing tools available in Studio. Libraries support a wide range of | ||
| content types, including text components, problems, video, Open Response | ||
| Assessments, drag and drop, polls and surveys, word cloud, and Google | ||
| Integration blocks. | ||
|
|
||
| Within a library you can organize content using collections, making it easier | ||
| to group and discover related material. You can also add tags to library | ||
| content to support content alignment and discoverability across your | ||
| organization. | ||
|
|
||
| Reuse Content Across Courses | ||
| ============================= | ||
|
|
||
| Once content is published in a library, you can add it to a course just as you | ||
| would add any other content in Studio. A single piece of library content can be | ||
| reused across many courses simultaneously. Because the content remains linked | ||
| to its source library, all courses benefit from updates centrally rather than | ||
| requiring manual edits in each course separately. | ||
|
|
||
| Customize Content for a Course | ||
| ================================ | ||
|
|
||
| Library-sourced content can be customized for a specific course without | ||
| unlinking it from the library. The following types of overrides are supported. | ||
|
|
||
| * **Title overrides.** You can rename any library-sourced section, subsection, | ||
| unit, or component in a course. The custom title is preserved when you sync | ||
| library updates. | ||
|
|
||
| * **Text content overrides.** You can edit the text content of a library-sourced | ||
| text component in a course. Overridden text components are excluded from | ||
| future content syncs, so your local edits are preserved. For standalone text | ||
| components, you can also choose at sync time whether to keep your local | ||
| content or update to the latest library version. | ||
|
|
||
| Sync Updates to Courses | ||
| ========================= | ||
|
|
||
| When content in a library is updated and published, courses that use that | ||
| content are notified that updates are available. Course authors can review the | ||
| changes side-by-side with the current course content before deciding whether to | ||
| accept or ignore each update. Syncing can be initiated from the course outline, | ||
| the unit page, or the Library Updates page (accessible from the | ||
| :guilabel:`Content` menu in Studio). | ||
|
|
||
| Accepting a sync on a structural block — such as a section or subsection — | ||
| applies updates to all content within it, except for any components that have | ||
| local overrides. | ||
|
|
||
| Who Can Access a Library | ||
| ************************* | ||
|
|
||
| Libraries have their own :ref:`user access settings <Add users to Libraries>`, | ||
| separate from courses. Access is managed through the Team Management panel in | ||
| the Administrative Console, which is accessible via the :guilabel:`ⓘ Library | ||
| Info` sidebar in Studio. Any change to a user's library access applies to that | ||
| library only and does not affect their access to other libraries or courses. | ||
|
|
||
| Libraries use four roles to control what each team member can do. | ||
|
|
||
| * **Library User** — can view and use library content in courses. | ||
| * **Library Contributor** — can create and edit content in the library. | ||
| * **Library Author** — can create, edit, and publish content in the library. | ||
| * **Library Admin** — can manage content and control team membership, including | ||
| adding and removing users and changing roles. | ||
|
|
||
| Only Library Admins and global site admins can add or remove team members or | ||
| change their roles. | ||
|
|
||
| .. seealso:: | ||
|
|
||
| :ref:`Work with Content Libraries` (reference) | ||
|
|
||
| :ref:`Create a New Library` (how-to) | ||
|
|
||
| :ref:`Create and edit content in a Library` (how-to) | ||
|
|
||
| :ref:`Create and edit units in a Library` (how-to) | ||
|
|
||
| :ref:`Create and Edit New Subsections and Sections` (how-to) | ||
|
|
||
| :ref:`Add Library content to a course` (how-to) | ||
|
|
||
| :ref:`Add users to Libraries` (how-to) | ||
|
|
||
|
|
||
| **Maintenance chart** | ||
|
|
||
| +--------------+-------------------------------+----------------+--------------------------------+ | ||
| | Review Date | Working Group Reviewer | Release |Test situation | | ||
| +--------------+-------------------------------+----------------+--------------------------------+ | ||
| | 2026-04-08 | sarina | Verawood | Pass | | ||
| +--------------+-------------------------------+----------------+--------------------------------+ |
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
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
94 changes: 94 additions & 0 deletions
94
source/educators/how-tos/course_development/override_library_content_title.rst
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| .. _Override the Title of Library-Sourced Content: | ||
|
|
||
| Override the Title of Library-Sourced Content | ||
| ############################################# | ||
|
|
||
| .. tags:: educator, how-to | ||
|
|
||
| When you add content from a content library to your course, it is linked to | ||
| its source library and its title reflects whatever was set in the library. You | ||
| can rename that content in your course without unlinking it from the library. | ||
| Title overrides are supported for all library-sourced content, including | ||
| sections, subsections, units, and components. | ||
|
|
||
| .. note:: | ||
| Title overrides are available starting with the Verawood release of the | ||
| Open edX platform. | ||
|
|
||
| Prerequisites | ||
| ************* | ||
|
|
||
| Before you begin, ensure that you have: | ||
|
|
||
| - A course open in Studio. | ||
| - At least one section, subsection, unit, or component that was added to the | ||
| course from a content library. | ||
|
|
||
| Override a Title | ||
| **************** | ||
|
|
||
| The steps for overriding a title depend on the type of content you are | ||
| renaming. | ||
|
|
||
| Rename a Section, Subsection, or Unit | ||
| ====================================== | ||
|
|
||
| 1. In Studio, open the course outline. | ||
|
|
||
| 2. Locate the library-sourced section, subsection, or unit you want to rename. | ||
|
|
||
| 3. Select the pencil icon or select the existing title to make it editable. | ||
|
|
||
| 4. Enter the new title. | ||
|
|
||
| 5. Press :guilabel:`Enter` or select outside the field to save the change. | ||
|
|
||
| Rename a Component | ||
| ================== | ||
|
|
||
| 1. In Studio, open the unit that contains the library-sourced component you | ||
| want to rename. | ||
|
|
||
| 2. Select the pencil icon next to the component's title to make it editable. | ||
|
|
||
| 3. Enter the new title. | ||
|
|
||
| 4. Press :guilabel:`Enter` or select outside the field to save the change. | ||
|
|
||
| The component now displays your custom title in the course. The title in the | ||
| source library is not affected. | ||
|
|
||
| .. note:: | ||
| Once you save a title override, there is no indicator in the current release | ||
| that marks the content as locally renamed. This is planned for a future | ||
| release. | ||
|
|
||
| How Title Overrides Interact with Syncing | ||
| ****************************************** | ||
|
|
||
| When you sync library-sourced content that has a locally overridden title, | ||
| your custom title is always preserved. Syncing never overwrites a title | ||
| override, even if the title has been updated in the source library. | ||
|
|
||
| There is one exception: if a piece of content is deleted in the library and | ||
| you accept that sync, the content is removed from your course even if it had | ||
| a local title override. | ||
|
|
||
| .. seealso:: | ||
|
|
||
| :ref:`Add Library Content to a Course` (how-to) | ||
|
|
||
| :ref:`Sync a Library update to your course` (how-to) | ||
|
|
||
| :ref:`Override Text Content in a Library-Referenced Component` (how-to) | ||
|
|
||
| :ref:`Override Text Content in a Library-Sourced Structural Block` (how-to) | ||
|
|
||
|
|
||
| **Maintenance chart** | ||
|
|
||
| +--------------+-------------------------------+----------------+--------------------------------+ | ||
| | Review Date | Working Group Reviewer | Release |Test situation | | ||
| +--------------+-------------------------------+----------------+--------------------------------+ | ||
| | 2026-04-08 | sarina | Verawood | Pass | | ||
| +--------------+-------------------------------+----------------+--------------------------------+ | ||
103 changes: 103 additions & 0 deletions
103
source/educators/how-tos/course_development/override_library_text_component.rst
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,103 @@ | ||
| .. _Override Text Content in a Library-Referenced Component: | ||
|
|
||
| Override Text Content in a Library-Referenced Component | ||
| ####################################################### | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Gaps to verify before publishing:
|
||
|
|
||
| .. tags:: educator, how-to | ||
|
|
||
| When you add content from a content library to your course, that content is | ||
| linked to its source library and kept in sync with it. In most cases, you | ||
| cannot edit library-sourced content directly in a course — but text components | ||
| are an exception. You can override the text content of a library-sourced text | ||
| component to customize it for your course without unlinking the rest of the | ||
| content from the library. | ||
|
|
||
| This how-to covers standalone text component overrides. For information about | ||
| overriding text content within a library-sourced unit, subsection, or section, | ||
| see :ref:`Override Text Content in a Library-Sourced Structural Block`. | ||
|
|
||
| .. note:: | ||
| Text content overrides are available starting with the Verawood release of | ||
| the Open edX platform. | ||
|
|
||
| Prerequisites | ||
| ************* | ||
|
|
||
| Before you begin, ensure that you have: | ||
|
|
||
| - A course open in Studio. | ||
| - A published text component from a content library already added to the | ||
| course as a standalone component (not nested inside a library-sourced unit, | ||
| subsection, or section). | ||
|
|
||
| Override the Text Content | ||
| ************************* | ||
|
|
||
| 1. In Studio, open the unit that contains the library-sourced text component | ||
| you want to customize. | ||
|
|
||
| 2. Locate the text component. It will display an :guilabel:`Edit` button even | ||
| though it is library-sourced. | ||
|
|
||
| 3. Select :guilabel:`Edit` to open the text editor. | ||
|
|
||
| 4. Make your changes to the text content. | ||
|
|
||
| 5. Select :guilabel:`Save` to save the override. | ||
|
|
||
| The text component now displays your customized content in the course. The | ||
| original content in the source library is not affected. | ||
|
|
||
| .. note:: | ||
| Once you save an override, there is no indicator in the current release that | ||
| marks the component as locally overridden. This is planned for a future | ||
| release. | ||
|
|
||
| Sync Library Updates After an Override | ||
| *************************************** | ||
|
|
||
| Overriding the text content of a standalone text component changes how syncing | ||
| works for that component. When a newer version of the component is published in | ||
| the source library, you can choose what happens to your override during a sync. | ||
|
|
||
| When you sync and the library has a newer version of the overridden text | ||
| component, Studio will prompt you to choose one of the following options. | ||
|
|
||
| - **Keep course content** — your local override is preserved and the library | ||
| update is ignored for this component. | ||
| - **Update to published library content** — your override is discarded and the | ||
| component is updated to the latest version from the library. | ||
|
|
||
| .. important:: | ||
| This choice — whether to keep or drop an override — is only available for | ||
| standalone text component overrides. Other types of overrides (such as | ||
| title overrides) are handled automatically during sync and cannot be | ||
| selectively kept or dropped. | ||
|
|
||
| What You Cannot Override | ||
| ************************* | ||
|
|
||
| Not all edits are allowed on library-sourced content. Overrides are limited to | ||
| text content on text components. Edits that would change the structure of | ||
| library content — such as reordering components within a library-sourced unit — | ||
| are not permitted. To make structural changes, you must first unlink the | ||
| content from its source library. | ||
|
|
||
| .. seealso:: | ||
|
|
||
| :ref:`Add Library Content to a Course` (how-to) | ||
|
|
||
| :ref:`Sync a Library update to your course` (how-to) | ||
|
|
||
| :ref:`Override the Title of Library-Sourced Content` (how-to) | ||
|
|
||
| :ref:`Override Text Content in a Library-Sourced Structural Block` (how-to) | ||
|
|
||
|
|
||
| **Maintenance chart** | ||
|
|
||
| +--------------+-------------------------------+----------------+--------------------------------+ | ||
| | Review Date | Working Group Reviewer | Release |Test situation | | ||
| +--------------+-------------------------------+----------------+--------------------------------+ | ||
| | 2026-04-08 | sarina | Verawood | Pass | | ||
| +--------------+-------------------------------+----------------+--------------------------------+ | ||
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Decisions made: I split the steps by content type because the UI entry point is different — the course outline for structural content vs. the unit view for components. The spec doesn't describe the exact UI mechanics (pencil icon, click-to-edit, etc.), so those are reasonable assumptions based on how Studio typically works and should be verified against the actual Verawood UI.
Gaps to verify: