Skip to content

Commit 2ab8ab4

Browse files
author
github-actions
committed
Site Update from develop branch. [skip ci]
1 parent b760666 commit 2ab8ab4

71 files changed

Lines changed: 172 additions & 75 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

README.page-vue-render.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

about.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

about.page-vue-render.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

authorGuide/adaptations/adaptations.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@
458458

459459
</div>
460460
</div>
461-
</button></div></pre><p>This removes the stored adaptation. On the next page load (without a page meta tag), no adaptation will be active.</p> <hr></div> <nav id="page-nav" data-v-6b1b63d2><!--[--><div class="nav-component slim-scroll"><a class="navbar-brand page-nav-title" href="#">Topics</a> <nav id="mb-page-nav" class="nav nav-pills flex-column my-0 small no-flex-wrap" data-v-6b1b63d2><!--[--><a class="nav-link py-1" href="#site-adaptations">Site Adaptations‎</a> <nav class="nav nav-pills flex-column my-0 nested no-flex-wrap"><a class="nav-link py-1" href="#how-it-works">How It Works‎</a> <a class="nav-link py-1" href="#quick-start">Quick Start‎</a> <a class="nav-link py-1" href="#file-placement">File Placement‎</a> <a class="nav-link py-1" href="#per-page-activation">Per-Page Activation‎</a> <a class="nav-link py-1" href="#activation-landing-page">Activation Landing Page‎</a> <a class="nav-link py-1" href="#clearing-an-adaptation">Clearing an Adaptation‎</a></nav><!--]--><!--v-if--></nav></div><!--]--><!--v-if--></nav> <div class="scroll-top-button fa-lg d-print-none" style="display:none;bottom:2%;right:2%;position:fixed;" aria-hidden="true"><!--[--><i class="fas fa-arrow-circle-up"></i><!--]--></div></div> <div><footer><div class="text-center"><small>[Generated by <a href="https://markbind.org/">MarkBind 6.3.1</a> on Mon, 23 Mar 2026, 20:36:04 GMT+8]</small><br></div></footer></div><!--]--></div>
461+
</button></div></pre><p>This removes the stored adaptation. On the next page load (without a page meta tag), no adaptation will be active.</p> <hr></div> <nav id="page-nav" data-v-6b1b63d2><!--[--><div class="nav-component slim-scroll"><a class="navbar-brand page-nav-title" href="#">Topics</a> <nav id="mb-page-nav" class="nav nav-pills flex-column my-0 small no-flex-wrap" data-v-6b1b63d2><!--[--><a class="nav-link py-1" href="#site-adaptations">Site Adaptations‎</a> <nav class="nav nav-pills flex-column my-0 nested no-flex-wrap"><a class="nav-link py-1" href="#how-it-works">How It Works‎</a> <a class="nav-link py-1" href="#quick-start">Quick Start‎</a> <a class="nav-link py-1" href="#file-placement">File Placement‎</a> <a class="nav-link py-1" href="#per-page-activation">Per-Page Activation‎</a> <a class="nav-link py-1" href="#activation-landing-page">Activation Landing Page‎</a> <a class="nav-link py-1" href="#clearing-an-adaptation">Clearing an Adaptation‎</a></nav><!--]--><!--v-if--></nav></div><!--]--><!--v-if--></nav> <div class="scroll-top-button fa-lg d-print-none" style="display:none;bottom:2%;right:2%;position:fixed;" aria-hidden="true"><!--[--><i class="fas fa-arrow-circle-up"></i><!--]--></div></div> <div><footer><div class="text-center"><small>[Generated by <a href="https://markbind.org/">MarkBind 6.3.1</a> on Tue, 24 Mar 2026, 11:26:46 GMT+8]</small><br></div></footer></div><!--]--></div>
462462
</body><script src="/devdocs/markbind/js/bootstrap-utility.min.js"></script>
463463
<script src="/devdocs/markbind/js/polyfill.min.js"></script>
464464
<script src="/devdocs/markbind/js/vue.global.prod.min.js"></script>

authorGuide/adaptations/adaptations.page-vue-render.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

authorGuide/adaptations/configuration.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@
376376

377377
</div>
378378
</div>
379-
</button></div></pre><p>Students linked to <code class="hljs inline no-lang">/nus/</code> get the NUS theme immediately; the theme persists as they navigate the rest of the site.</p> <p>See the <a href="/nus/">live demo</a> for an interactive example.</p> <h3 id="placeholder-adaptation-configurations-sitemanaged">Placeholder Adaptation Configurations (siteManaged)<a class="fa fa-anchor" href="#placeholder-adaptation-configurations-sitemanaged" onclick="event.stopPropagation()"></a></h3> <p>Adaptations override placeholder values via <code class="hljs inline no-lang">preset.placeholders</code>. The preset is applied before the user&#39;s persisted state, so users can still change these values from the settings modal.</p> <p>To prevent users from ever changing a placeholder — making it fully site-controlled — mark it with <code class="hljs inline no-lang">siteManaged: true</code> in <code class="hljs inline no-lang">custardui.config.json</code>. See <a href="#site-managed-components-sitemanaged">Site-Managed Components</a> below.</p> <h3 id="toggle-adaptation-configurations-sitemanaged">Toggle Adaptation Configurations (siteManaged)<a class="fa fa-anchor" href="#toggle-adaptation-configurations-sitemanaged" onclick="event.stopPropagation()"></a></h3> <p>Adaptations override toggle visibility via <code class="hljs inline no-lang">preset.toggles</code>. The preset is applied before the user&#39;s persisted state, so users can still override toggle states from the settings modal or a shared URL.</p> <p>To prevent users from ever changing a toggle&#39;s state — making it fully site-controlled — mark it with <code class="hljs inline no-lang">siteManaged: true</code> in <code class="hljs inline no-lang">custardui.config.json</code>. See <a href="#site-managed-components-sitemanaged">Site-Managed Components</a> below.</p> <h3 id="label-adaptation-configurations">Label Adaptation Configurations<a class="fa fa-anchor" href="#label-adaptation-configurations" onclick="event.stopPropagation()"></a></h3> <p>Adaptations override label text via <code class="hljs inline no-lang">preset.labels</code>. This means that adaptations can dynamically set the text and color of labels on a page.</p> <h3 id="tabgroup-adaptation-configurations">TabGroup Adaptation Configurations<a class="fa fa-anchor" href="#tabgroup-adaptation-configurations" onclick="event.stopPropagation()"></a></h3> <p>Adaptations can set an initial tab selection via <code class="hljs inline no-lang">preset.tabs</code>. However, there is no <code class="hljs inline no-lang">siteManaged</code> option for tab groups.</p></div> <nav id="page-nav" data-v-6b1b63d2><!--[--><div class="nav-component slim-scroll"><a class="navbar-brand page-nav-title" href="#">Topics</a> <nav id="mb-page-nav" class="nav nav-pills flex-column my-0 small no-flex-wrap" data-v-6b1b63d2><!--[--><a class="nav-link py-1" href="#adaptation-configurations">Adaptation Configurations‎</a> <nav class="nav nav-pills flex-column my-0 nested no-flex-wrap"><a class="nav-link py-1" href="#adaptation-json-schema">Adaptation JSON Schema‎</a> <a class="nav-link py-1" href="#site-managed-components-sitemanaged">Site-Managed Components (siteManaged)‎</a> <a class="nav-link py-1" href="#state-layering-precedence">State Layering Precedence‎</a> <a class="nav-link py-1" href="#example-institution-adaptation-of-this-site">Example: Institution Adaptation of this Site‎</a></nav><!--]--><!--v-if--></nav></div><!--]--><!--v-if--></nav> <div class="scroll-top-button fa-lg d-print-none" style="display:none;bottom:2%;right:2%;position:fixed;" aria-hidden="true"><!--[--><i class="fas fa-arrow-circle-up"></i><!--]--></div></div> <div><footer><div class="text-center"><small>[Generated by <a href="https://markbind.org/">MarkBind 6.3.1</a> on Mon, 23 Mar 2026, 20:36:04 GMT+8]</small><br></div></footer></div><!--]--></div>
379+
</button></div></pre><p>Students linked to <code class="hljs inline no-lang">/nus/</code> get the NUS theme immediately; the theme persists as they navigate the rest of the site.</p> <p>See the <a href="/nus/">live demo</a> for an interactive example.</p> <h3 id="placeholder-adaptation-configurations-sitemanaged">Placeholder Adaptation Configurations (siteManaged)<a class="fa fa-anchor" href="#placeholder-adaptation-configurations-sitemanaged" onclick="event.stopPropagation()"></a></h3> <p>Adaptations override placeholder values via <code class="hljs inline no-lang">preset.placeholders</code>. The preset is applied before the user&#39;s persisted state, so users can still change these values from the settings modal.</p> <p>To prevent users from ever changing a placeholder — making it fully site-controlled — mark it with <code class="hljs inline no-lang">siteManaged: true</code> in <code class="hljs inline no-lang">custardui.config.json</code>. See <a href="#site-managed-components-sitemanaged">Site-Managed Components</a> below.</p> <h3 id="toggle-adaptation-configurations-sitemanaged">Toggle Adaptation Configurations (siteManaged)<a class="fa fa-anchor" href="#toggle-adaptation-configurations-sitemanaged" onclick="event.stopPropagation()"></a></h3> <p>Adaptations override toggle visibility via <code class="hljs inline no-lang">preset.toggles</code>. The preset is applied before the user&#39;s persisted state, so users can still override toggle states from the settings modal or a shared URL.</p> <p>To prevent users from ever changing a toggle&#39;s state — making it fully site-controlled — mark it with <code class="hljs inline no-lang">siteManaged: true</code> in <code class="hljs inline no-lang">custardui.config.json</code>. See <a href="#site-managed-components-sitemanaged">Site-Managed Components</a> below.</p> <h3 id="label-adaptation-configurations">Label Adaptation Configurations<a class="fa fa-anchor" href="#label-adaptation-configurations" onclick="event.stopPropagation()"></a></h3> <p>Adaptations override label text via <code class="hljs inline no-lang">preset.labels</code>. This means that adaptations can dynamically set the text and color of labels on a page.</p> <h3 id="tabgroup-adaptation-configurations">TabGroup Adaptation Configurations<a class="fa fa-anchor" href="#tabgroup-adaptation-configurations" onclick="event.stopPropagation()"></a></h3> <p>Adaptations can set an initial tab selection via <code class="hljs inline no-lang">preset.tabs</code>. However, there is no <code class="hljs inline no-lang">siteManaged</code> option for tab groups.</p></div> <nav id="page-nav" data-v-6b1b63d2><!--[--><div class="nav-component slim-scroll"><a class="navbar-brand page-nav-title" href="#">Topics</a> <nav id="mb-page-nav" class="nav nav-pills flex-column my-0 small no-flex-wrap" data-v-6b1b63d2><!--[--><a class="nav-link py-1" href="#adaptation-configurations">Adaptation Configurations‎</a> <nav class="nav nav-pills flex-column my-0 nested no-flex-wrap"><a class="nav-link py-1" href="#adaptation-json-schema">Adaptation JSON Schema‎</a> <a class="nav-link py-1" href="#site-managed-components-sitemanaged">Site-Managed Components (siteManaged)‎</a> <a class="nav-link py-1" href="#state-layering-precedence">State Layering Precedence‎</a> <a class="nav-link py-1" href="#example-institution-adaptation-of-this-site">Example: Institution Adaptation of this Site‎</a></nav><!--]--><!--v-if--></nav></div><!--]--><!--v-if--></nav> <div class="scroll-top-button fa-lg d-print-none" style="display:none;bottom:2%;right:2%;position:fixed;" aria-hidden="true"><!--[--><i class="fas fa-arrow-circle-up"></i><!--]--></div></div> <div><footer><div class="text-center"><small>[Generated by <a href="https://markbind.org/">MarkBind 6.3.1</a> on Tue, 24 Mar 2026, 11:26:46 GMT+8]</small><br></div></footer></div><!--]--></div>
380380
</body><script src="/devdocs/markbind/js/bootstrap-utility.min.js"></script>
381381
<script src="/devdocs/markbind/js/polyfill.min.js"></script>
382382
<script src="/devdocs/markbind/js/vue.global.prod.min.js"></script>

authorGuide/adaptations/configuration.page-vue-render.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

authorGuide/adaptations/samplePage.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@
319319

320320
</div>
321321
</div>
322-
</button></div></pre><ol start="2"><li>Run their tests locally and check the output.</li> <li>Submit your review via the <strong>[[institutionName : institution]]</strong> peer review portal.</li></ol> <hr> <h2 id="institution-resources">Institution Resources<a class="fa fa-anchor" href="#institution-resources" onclick="event.stopPropagation()"></a></h2> <div class="alert box-container alert-info" style="" data-v-19514615><!--Icon and vertical divider for seamless header box--><!----><div class="header-and-body" data-v-19514615><!-- Header wrapper, not rendered if there is no header attribute --><!----><!-- Body wrapper --><div class="box-body-wrapper" data-v-19514615><!-- icon on the left, not shown if there is a header --><div class="icon-wrapper" style="" data-v-19514615><!--[--><i class="fas fa-info" data-v-19514615></i><!--]--></div><!-- Icon -- content divider for seamless boxes without the header attribute --><!----><!-- Content wrapper --><div class="contents" style="" data-v-19514615><!--[--><p>The sections below are controlled by the active adaptation — they are site-managed and cannot be toggled by individual users.</p><!--]--></div><!-- dismiss button on the right, not shown if there is a header --><!----></div></div></div> <cv-toggle toggle-id="nus-resources" show-label><h3 id="nus-resources">NUS Resources<a class="fa fa-anchor" href="#nus-resources" onclick="event.stopPropagation()"></a></h3> <p>Submit your work via <strong>LumiNUS</strong> before the deadline.</p> <ul><li><strong>Office hours:</strong> Monday–Friday, 10am–5pm (COM1 Level 2)</li> <li><strong>Forum:</strong> <a href="https://example.com">Piazza — CS Module</a></li> <li><strong>Support:</strong> <a href="mailto:help@comp.nus.edu.sg">help@comp.nus.edu.sg</a></li></ul></cv-toggle> <cv-toggle toggle-id="sample-resources" show-label><h3 id="sample-institution-resources">Sample Institution Resources<a class="fa fa-anchor" href="#sample-institution-resources" onclick="event.stopPropagation()"></a></h3> <p>Submit via the <strong>Sample Portal</strong> using your student ID.</p> <ul><li><strong>Office hours:</strong> Weekdays, 9am–6pm</li> <li><strong>Forum:</strong> <a href="https://example.com">Sample Forum</a></li> <li><strong>Support:</strong> <a href="mailto:support@sample.edu">support@sample.edu</a></li></ul></cv-toggle> <hr> <p><em>This page is personalised for <strong>[[institutionName : all students]]</strong>. Logged in as: [[username : Guest]]</em></p></div> <nav id="page-nav" data-v-6b1b63d2><!--[--><div class="nav-component slim-scroll"><a class="navbar-brand page-nav-title" href="#">Topics</a> <nav id="mb-page-nav" class="nav nav-pills flex-column my-0 small no-flex-wrap" data-v-6b1b63d2><!--[--><a class="nav-link py-1" href="#programming-module-institutionname-generic-module">Programming Module — [[institutionName : Generic Module]]‎</a> <nav class="nav nav-pills flex-column my-0 nested no-flex-wrap"><a class="nav-link py-1" href="#exercises-at-a-glance">Exercises at a Glance‎</a> <a class="nav-link py-1" href="#exercise-1-setting-up-your-environment">Exercise 1 — Setting Up Your Environment ‎</a> <a class="nav-link py-1" href="#exercise-2-writing-your-first-program">Exercise 2 — Writing Your First Program ‎</a> <a class="nav-link py-1" href="#exercise-3-advanced-problem-solving">Exercise 3 — Advanced Problem Solving ‎</a> <a class="nav-link py-1" href="#exercise-4-peer-review-and-amp-submission">Exercise 4 — Peer Review &amp; Submission ‎</a> <a class="nav-link py-1" href="#institution-resources">Institution Resources‎</a></nav><!--]--><!--v-if--></nav></div><!--]--><!--v-if--></nav> <div class="scroll-top-button fa-lg d-print-none" style="display:none;bottom:2%;right:2%;position:fixed;" aria-hidden="true"><!--[--><i class="fas fa-arrow-circle-up"></i><!--]--></div></div> <div><footer><div class="text-center"><small>[Generated by <a href="https://markbind.org/">MarkBind 6.3.1</a> on Mon, 23 Mar 2026, 20:36:04 GMT+8]</small><br></div></footer></div><!--]--></div>
322+
</button></div></pre><ol start="2"><li>Run their tests locally and check the output.</li> <li>Submit your review via the <strong>[[institutionName : institution]]</strong> peer review portal.</li></ol> <hr> <h2 id="institution-resources">Institution Resources<a class="fa fa-anchor" href="#institution-resources" onclick="event.stopPropagation()"></a></h2> <div class="alert box-container alert-info" style="" data-v-19514615><!--Icon and vertical divider for seamless header box--><!----><div class="header-and-body" data-v-19514615><!-- Header wrapper, not rendered if there is no header attribute --><!----><!-- Body wrapper --><div class="box-body-wrapper" data-v-19514615><!-- icon on the left, not shown if there is a header --><div class="icon-wrapper" style="" data-v-19514615><!--[--><i class="fas fa-info" data-v-19514615></i><!--]--></div><!-- Icon -- content divider for seamless boxes without the header attribute --><!----><!-- Content wrapper --><div class="contents" style="" data-v-19514615><!--[--><p>The sections below are controlled by the active adaptation — they are site-managed and cannot be toggled by individual users.</p><!--]--></div><!-- dismiss button on the right, not shown if there is a header --><!----></div></div></div> <cv-toggle toggle-id="nus-resources" show-label><h3 id="nus-resources">NUS Resources<a class="fa fa-anchor" href="#nus-resources" onclick="event.stopPropagation()"></a></h3> <p>Submit your work via <strong>LumiNUS</strong> before the deadline.</p> <ul><li><strong>Office hours:</strong> Monday–Friday, 10am–5pm (COM1 Level 2)</li> <li><strong>Forum:</strong> <a href="https://example.com">Piazza — CS Module</a></li> <li><strong>Support:</strong> <a href="mailto:help@comp.nus.edu.sg">help@comp.nus.edu.sg</a></li></ul></cv-toggle> <cv-toggle toggle-id="sample-resources" show-label><h3 id="sample-institution-resources">Sample Institution Resources<a class="fa fa-anchor" href="#sample-institution-resources" onclick="event.stopPropagation()"></a></h3> <p>Submit via the <strong>Sample Portal</strong> using your student ID.</p> <ul><li><strong>Office hours:</strong> Weekdays, 9am–6pm</li> <li><strong>Forum:</strong> <a href="https://example.com">Sample Forum</a></li> <li><strong>Support:</strong> <a href="mailto:support@sample.edu">support@sample.edu</a></li></ul></cv-toggle> <hr> <p><em>This page is personalised for <strong>[[institutionName : all students]]</strong>. Logged in as: [[username : Guest]]</em></p></div> <nav id="page-nav" data-v-6b1b63d2><!--[--><div class="nav-component slim-scroll"><a class="navbar-brand page-nav-title" href="#">Topics</a> <nav id="mb-page-nav" class="nav nav-pills flex-column my-0 small no-flex-wrap" data-v-6b1b63d2><!--[--><a class="nav-link py-1" href="#programming-module-institutionname-generic-module">Programming Module — [[institutionName : Generic Module]]‎</a> <nav class="nav nav-pills flex-column my-0 nested no-flex-wrap"><a class="nav-link py-1" href="#exercises-at-a-glance">Exercises at a Glance‎</a> <a class="nav-link py-1" href="#exercise-1-setting-up-your-environment">Exercise 1 — Setting Up Your Environment ‎</a> <a class="nav-link py-1" href="#exercise-2-writing-your-first-program">Exercise 2 — Writing Your First Program ‎</a> <a class="nav-link py-1" href="#exercise-3-advanced-problem-solving">Exercise 3 — Advanced Problem Solving ‎</a> <a class="nav-link py-1" href="#exercise-4-peer-review-and-amp-submission">Exercise 4 — Peer Review &amp; Submission ‎</a> <a class="nav-link py-1" href="#institution-resources">Institution Resources‎</a></nav><!--]--><!--v-if--></nav></div><!--]--><!--v-if--></nav> <div class="scroll-top-button fa-lg d-print-none" style="display:none;bottom:2%;right:2%;position:fixed;" aria-hidden="true"><!--[--><i class="fas fa-arrow-circle-up"></i><!--]--></div></div> <div><footer><div class="text-center"><small>[Generated by <a href="https://markbind.org/">MarkBind 6.3.1</a> on Tue, 24 Mar 2026, 11:26:46 GMT+8]</small><br></div></footer></div><!--]--></div>
323323
</body><script src="/devdocs/markbind/js/bootstrap-utility.min.js"></script>
324324
<script src="/devdocs/markbind/js/polyfill.min.js"></script>
325325
<script src="/devdocs/markbind/js/vue.global.prod.min.js"></script>

authorGuide/adaptations/samplePage.page-vue-render.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)