Compare commits

..

3 Commits

Author SHA1 Message Date
hyzen
465ff2d672 Fix: Unit page pagination 2026-05-22 14:09:31 +05:30
hyzen
b285fe7e4d Fix: Subject code page order of units 2026-05-22 14:05:31 +05:30
hyzen
41efdf7e06 Fix: uninotes page order of contents 2026-05-22 13:49:41 +05:30
13 changed files with 184 additions and 871 deletions

View File

@@ -1,774 +0,0 @@
/*
Styles are mobile-first. Desktop styles are wrapped in media queries.
Naming convention: BEM (Block, Element, Modifier). When it's difficult to add classes, I will use tag names.
*/
*,
*::before,
*::after {
box-sizing: border-box; }
.body {
margin: 0; }
a {
text-decoration: none; }
.menu__list,
.translation-list,
.pagination {
list-style-type: none;
padding-inline-start: 0; }
ul:has(> li > input[type="checkbox"]) {
list-style-type: none;
padding-inline-start: 1em; }
blockquote {
margin: 0; }
.body {
margin-left: 16px;
margin-right: 16px; }
@media (min-width: 800px) {
.body {
width: 768px;
margin-left: auto;
margin-right: auto; } }
:root {
--background-color: #171414;
--background-color1: #fff;
--foreground-color: #e3e1db;
--foreground-color3: #ccc3b3;
--accent-color: #fff; }
@media (prefers-color-scheme: light) {
:root {
--background-color: #fbf1c7;
--background-color1: #ebdbb2;
--foreground-color: #3c3836;
--foreground-color3: #665c54;
--accent-color: #af3a03; } }
.body {
background-color: var(--background-color);
color: var(--foreground-color); }
h1,
h2,
h3,
h4,
h5,
h6 {
color: var(--foreground-color); }
a {
color: var(--accent-color); }
.header {
border-bottom: 1px solid var(--background-color1); }
.brand {
display: flex;
align-items: center;
gap: 6.9px;
margin-bottom: -18px; }
.brand img {
height: 37px;
padding: 0px; }
.footer {
border-top: 1px solid var(--background-color1); }
blockquote {
background-color: var(--background-color1); }
[dir=rtl] blockquote {
border-right: 0.5rem solid var(--accent-color); }
[dir=ltr] blockquote {
border-left: 0.5rem solid var(--accent-color); }
:not(pre) > code {
background-color: var(--background-color1); }
hr {
background: var(--background-color1); }
table {
background-color: var(--background-color1); }
td,
th {
border: 1px solid var(--background-color); }
figcaption {
color: var(--foreground-color3); }
/* Background */
.bg {
color: #3c3836;
background-color: #fbf1c7; }
/* PreWrapper */
.chroma {
color: #3c3836;
background-color: #fbf1c7; }
/* Other */
/* Error */
/* CodeLine */
/* LineLink */
.chroma .lnlinks {
outline: none;
text-decoration: none;
color: inherit; }
/* LineTableTD */
.chroma .lntd {
vertical-align: top;
padding: 0;
margin: 0;
border: 0; }
/* LineTable */
.chroma .lntable {
border-spacing: 0;
padding: 0;
margin: 0;
border: 0; }
/* LineHighlight */
.chroma .hl {
background-color: #e1d8b3; }
/* LineNumbersTable */
.chroma .lnt {
white-space: pre;
-webkit-user-select: none;
user-select: none;
margin-right: 0.4em;
padding: 0 0.4em 0 0.4em;
color: #9d9b9a; }
/* LineNumbers */
.chroma .ln {
white-space: pre;
-webkit-user-select: none;
user-select: none;
margin-right: 0.4em;
padding: 0 0.4em 0 0.4em;
color: #9d9b9a; }
/* Line */
.chroma .line {
display: flex; }
/* Keyword */
.chroma .k {
color: #af3a03; }
/* KeywordConstant */
.chroma .kc {
color: #af3a03; }
/* KeywordDeclaration */
.chroma .kd {
color: #af3a03; }
/* KeywordNamespace */
.chroma .kn {
color: #af3a03; }
/* KeywordPseudo */
.chroma .kp {
color: #af3a03; }
/* KeywordReserved */
.chroma .kr {
color: #af3a03; }
/* KeywordType */
.chroma .kt {
color: #b57614; }
/* Name */
/* NameAttribute */
.chroma .na {
color: #79740e;
font-weight: bold; }
/* NameBuiltin */
.chroma .nb {
color: #b57614; }
/* NameBuiltinPseudo */
/* NameClass */
/* NameConstant */
.chroma .no {
color: #d3869b; }
/* NameDecorator */
/* NameEntity */
.chroma .ni {
color: #b57614; }
/* NameException */
.chroma .ne {
color: #fb4934; }
/* NameFunction */
.chroma .nf {
color: #b57614; }
/* NameFunctionMagic */
/* NameLabel */
.chroma .nl {
color: #9d0006; }
/* NameNamespace */
/* NameOther */
/* NameProperty */
/* NameTag */
.chroma .nt {
color: #9d0006; }
/* NameVariable */
/* NameVariableClass */
/* NameVariableGlobal */
/* NameVariableInstance */
/* NameVariableMagic */
/* Literal */
/* LiteralDate */
/* LiteralString */
.chroma .s {
color: #79740e; }
/* LiteralStringAffix */
.chroma .sa {
color: #79740e; }
/* LiteralStringBacktick */
.chroma .sb {
color: #79740e; }
/* LiteralStringChar */
.chroma .sc {
color: #79740e; }
/* LiteralStringDelimiter */
.chroma .dl {
color: #79740e; }
/* LiteralStringDoc */
.chroma .sd {
color: #79740e; }
/* LiteralStringDouble */
.chroma .s2 {
color: #79740e; }
/* LiteralStringEscape */
.chroma .se {
color: #79740e; }
/* LiteralStringHeredoc */
.chroma .sh {
color: #79740e; }
/* LiteralStringInterpol */
.chroma .si {
color: #79740e; }
/* LiteralStringOther */
.chroma .sx {
color: #79740e; }
/* LiteralStringRegex */
.chroma .sr {
color: #79740e; }
/* LiteralStringSingle */
.chroma .s1 {
color: #79740e; }
/* LiteralStringSymbol */
.chroma .ss {
color: #076678; }
/* LiteralNumber */
.chroma .m {
color: #8f3f71; }
/* LiteralNumberBin */
.chroma .mb {
color: #8f3f71; }
/* LiteralNumberFloat */
.chroma .mf {
color: #8f3f71; }
/* LiteralNumberHex */
.chroma .mh {
color: #8f3f71; }
/* LiteralNumberInteger */
.chroma .mi {
color: #8f3f71; }
/* LiteralNumberIntegerLong */
.chroma .il {
color: #8f3f71; }
/* LiteralNumberOct */
.chroma .mo {
color: #8f3f71; }
/* Operator */
.chroma .o {
color: #af3a03; }
/* OperatorWord */
.chroma .ow {
color: #af3a03; }
/* Punctuation */
/* Comment */
.chroma .c {
color: #928374;
font-style: italic; }
/* CommentHashbang */
.chroma .ch {
color: #928374;
font-style: italic; }
/* CommentMultiline */
.chroma .cm {
color: #928374;
font-style: italic; }
/* CommentSingle */
.chroma .c1 {
color: #928374;
font-style: italic; }
/* CommentSpecial */
.chroma .cs {
color: #928374;
font-style: italic; }
/* CommentPreproc */
.chroma .cp {
color: #427b58; }
/* CommentPreprocFile */
.chroma .cpf {
color: #427b58;
font-style: italic; }
/* Generic */
/* GenericDeleted */
.chroma .gd {
color: #282828;
background-color: #9d0006; }
/* GenericEmph */
.chroma .ge {
color: #076678;
text-decoration: underline; }
/* GenericError */
.chroma .gr {
background-color: #9d0006;
font-weight: bold; }
/* GenericHeading */
.chroma .gh {
color: #79740e;
font-weight: bold; }
/* GenericInserted */
.chroma .gi {
color: #282828;
background-color: #79740e; }
/* GenericOutput */
.chroma .go {
color: #504945; }
/* GenericPrompt */
/* GenericStrong */
/* GenericSubheading */
.chroma .gu {
color: #79740e;
font-weight: bold; }
/* GenericTraceback */
.chroma .gt {
background-color: #3c3836;
font-weight: bold; }
/* GenericUnderline */
/* TextWhitespace */
@media (prefers-color-scheme: dark) {
/* Background */
.bg {
color: #ebdbb2;
background-color: #282828; }
/* PreWrapper */
.chroma {
color: #ebdbb2;
background-color: #282828; }
/* Other */
/* Error */
/* CodeLine */
/* LineLink */
.chroma .lnlinks {
outline: none;
text-decoration: none;
color: inherit; }
/* LineTableTD */
.chroma .lntd {
vertical-align: top;
padding: 0;
margin: 0;
border: 0; }
/* LineTable */
.chroma .lntable {
border-spacing: 0;
padding: 0;
margin: 0;
border: 0; }
/* LineHighlight */
.chroma .hl {
background-color: #3d3d3d; }
/* LineNumbersTable */
.chroma .lnt {
white-space: pre;
-webkit-user-select: none;
user-select: none;
margin-right: 0.4em;
padding: 0 0.4em 0 0.4em;
color: #756d59; }
/* LineNumbers */
.chroma .ln {
white-space: pre;
-webkit-user-select: none;
user-select: none;
margin-right: 0.4em;
padding: 0 0.4em 0 0.4em;
color: #756d59; }
/* Line */
.chroma .line {
display: flex; }
/* Keyword */
.chroma .k {
color: #fe8019; }
/* KeywordConstant */
.chroma .kc {
color: #fe8019; }
/* KeywordDeclaration */
.chroma .kd {
color: #fe8019; }
/* KeywordNamespace */
.chroma .kn {
color: #fe8019; }
/* KeywordPseudo */
.chroma .kp {
color: #fe8019; }
/* KeywordReserved */
.chroma .kr {
color: #fe8019; }
/* KeywordType */
.chroma .kt {
color: #fabd2f; }
/* Name */
/* NameAttribute */
.chroma .na {
color: #b8bb26;
font-weight: bold; }
/* NameBuiltin */
.chroma .nb {
color: #fabd2f; }
/* NameBuiltinPseudo */
/* NameClass */
/* NameConstant */
.chroma .no {
color: #d3869b; }
/* NameDecorator */
/* NameEntity */
.chroma .ni {
color: #fabd2f; }
/* NameException */
.chroma .ne {
color: #fb4934; }
/* NameFunction */
.chroma .nf {
color: #fabd2f; }
/* NameFunctionMagic */
/* NameLabel */
.chroma .nl {
color: #fb4934; }
/* NameNamespace */
/* NameOther */
/* NameProperty */
/* NameTag */
.chroma .nt {
color: #fb4934; }
/* NameVariable */
/* NameVariableClass */
/* NameVariableGlobal */
/* NameVariableInstance */
/* NameVariableMagic */
/* Literal */
/* LiteralDate */
/* LiteralString */
.chroma .s {
color: #b8bb26; }
/* LiteralStringAffix */
.chroma .sa {
color: #b8bb26; }
/* LiteralStringBacktick */
.chroma .sb {
color: #b8bb26; }
/* LiteralStringChar */
.chroma .sc {
color: #b8bb26; }
/* LiteralStringDelimiter */
.chroma .dl {
color: #b8bb26; }
/* LiteralStringDoc */
.chroma .sd {
color: #b8bb26; }
/* LiteralStringDouble */
.chroma .s2 {
color: #b8bb26; }
/* LiteralStringEscape */
.chroma .se {
color: #b8bb26; }
/* LiteralStringHeredoc */
.chroma .sh {
color: #b8bb26; }
/* LiteralStringInterpol */
.chroma .si {
color: #b8bb26; }
/* LiteralStringOther */
.chroma .sx {
color: #b8bb26; }
/* LiteralStringRegex */
.chroma .sr {
color: #b8bb26; }
/* LiteralStringSingle */
.chroma .s1 {
color: #b8bb26; }
/* LiteralStringSymbol */
.chroma .ss {
color: #83a598; }
/* LiteralNumber */
.chroma .m {
color: #d3869b; }
/* LiteralNumberBin */
.chroma .mb {
color: #d3869b; }
/* LiteralNumberFloat */
.chroma .mf {
color: #d3869b; }
/* LiteralNumberHex */
.chroma .mh {
color: #d3869b; }
/* LiteralNumberInteger */
.chroma .mi {
color: #d3869b; }
/* LiteralNumberIntegerLong */
.chroma .il {
color: #d3869b; }
/* LiteralNumberOct */
.chroma .mo {
color: #d3869b; }
/* Operator */
.chroma .o {
color: #fe8019; }
/* OperatorWord */
.chroma .ow {
color: #fe8019; }
/* Punctuation */
/* Comment */
.chroma .c {
color: #928374;
font-style: italic; }
/* CommentHashbang */
.chroma .ch {
color: #928374;
font-style: italic; }
/* CommentMultiline */
.chroma .cm {
color: #928374;
font-style: italic; }
/* CommentSingle */
.chroma .c1 {
color: #928374;
font-style: italic; }
/* CommentSpecial */
.chroma .cs {
color: #928374;
font-style: italic; }
/* CommentPreproc */
.chroma .cp {
color: #8ec07c; }
/* CommentPreprocFile */
.chroma .cpf {
color: #8ec07c;
font-style: italic; }
/* Generic */
/* GenericDeleted */
.chroma .gd {
color: #282828;
background-color: #fb4934; }
/* GenericEmph */
.chroma .ge {
color: #83a598;
text-decoration: underline; }
/* GenericError */
.chroma .gr {
background-color: #fb4934;
font-weight: bold; }
/* GenericHeading */
.chroma .gh {
color: #b8bb26;
font-weight: bold; }
/* GenericInserted */
.chroma .gi {
color: #282828;
background-color: #b8bb26; }
/* GenericOutput */
.chroma .go {
color: #504945; }
/* GenericPrompt */
/* GenericStrong */
/* GenericSubheading */
.chroma .gu {
color: #b8bb26;
font-weight: bold; }
/* GenericTraceback */
.chroma .gt {
background-color: #fb4934;
font-weight: bold; }
/* GenericUnderline */
/* TextWhitespace */ }
pre:not(.chroma),
.bg,
.chroma,
.highlight {
background-color: var(--background-color1); }
.html {
font-size: 18px; }
.body {
font-family: sans-serif;
line-height: 1.5; }
p,
ul,
ol,
h1,
h2,
h3,
h4,
h5,
h6 {
overflow-wrap: break-word; }
.toc {
margin-block: 1rem; }
.toc__summary {
font-weight: bolder;
cursor: pointer; }
blockquote {
padding: 0.5rem; }
hr {
border: none;
height: 1px; }
figure {
margin-inline: 0; }
.heading__anchor {
display: none; }
.heading:hover > .heading__anchor {
display: inline; }
.table-wrapper {
overflow-x: auto;
margin-block: 1rem; }
.table-wrapper > table {
word-break: keep-all;
border-collapse: collapse; }
.table-wrapper > table td,
.table-wrapper > table th {
padding: 0.5rem;
text-align: start; }
svg,
img,
video,
iframe {
max-width: 100%; }
.menu__list {
display: flex;
flex-direction: row;
gap: 0.5rem;
flex-wrap: wrap; }
.menu__link--active {
font-weight: bolder; }
.pagination {
display: flex;
gap: 1rem; }
.page-item.active {
font-weight: bolder; }
.page-nav {
display: flex;
flex-direction: column;
margin-block: 1rem; }
.section-post-title,
.term-post-title {
margin-block-start: 0; }
.home-post-title {
margin-block-end: 0; }
.summary {
margin-block-start: 0; }
:not(pre) > code {
padding-inline: 0.25rem; }
div.highlight {
overflow-x: auto;
margin-block: 1rem; }
div.highlight > div.chroma > table.lntable {
padding-inline-end: 0.4rem; }
div.highlight > pre.chroma {
padding-inline: 0.4rem; }
pre:not(.chroma) {
overflow-x: auto;
padding-block: 1rem;
padding-inline: 0.4rem; }
pre {
font-size: 0.875rem; }
.footer {
font-size: smaller; }

View File

@@ -7,15 +7,9 @@
<label class=brand__mobile-toggle for=mobile-menu-check aria-label=Menu><svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg></label><div class=brand__mobile-links><a href=/login/ class=mobile-link>Login</a> <label class=brand__mobile-toggle for=mobile-menu-check aria-label=Menu><svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg></label><div class=brand__mobile-links><a href=/login/ class=mobile-link>Login</a>
<a href=/signup/ class=mobile-link>Sign Up</a> <a href=/signup/ class=mobile-link>Sign Up</a>
<a href=/uninotes/index.xml class="mobile-link mobile-link--subscribe"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" aria-hidden="true"><path d="M6.18 15.64a2.18 2.18.0 012.18 2.18c0 1.19-.98 2.18-2.18 2.18C4.98 20 4 19.01 4 17.82a2.18 2.18.0 012.18-2.18M4 4.44A15.56 15.56.0 0119.56 20h-2.83A12.73 12.73.0 004 7.27V4.44m0 5.66a9.9 9.9.0 019.9 9.9h-2.83A7.07 7.07.0 004 12.93V10.1z"/></svg> <a href=/uninotes/index.xml class="mobile-link mobile-link--subscribe"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" aria-hidden="true"><path d="M6.18 15.64a2.18 2.18.0 012.18 2.18c0 1.19-.98 2.18-2.18 2.18C4.98 20 4 19.01 4 17.82a2.18 2.18.0 012.18-2.18M4 4.44A15.56 15.56.0 0119.56 20h-2.83A12.73 12.73.0 004 7.27V4.44m0 5.66a9.9 9.9.0 019.9 9.9h-2.83A7.07 7.07.0 004 12.93V10.1z"/></svg>
Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu__list language__list"><li class=menu__item><a class=menu__link href=/>Home</a></li><li class=menu__item><a class=menu__link href=/blog/>Blog</a></li><li class=menu__item><a class=menu__link href=/services/>Services</a></li><li class=menu__item><a class=menu__link href=/uninotes/>UniNotes</a></li><li class=menu__item><a class=menu__link href=/contact/>Contact</a></li></ul></nav></header><main class=main><nav class="uninotes-breadcrumbs breadcrumbs"><a href=/uninotes/>UniNotes</a></nav><h1>UniNotes</h1><h3 class=uninotes-contents-heading>Contents</h3><div class=uninotes-contents><div class=uninotes-contents__semester><a class=uninotes-contents__sem-link href=/uninotes/s1/>S1</a><div class=uninotes-contents__subject><a class=uninotes-contents__subject-link href=/uninotes/s1/bo-dcm1109/>BO DCM1109</a><ul class=uninotes-contents__units><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/bo-dcm1109/unit1/>Unit 1</a> Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu__list language__list"><li class=menu__item><a class=menu__link href=/>Home</a></li><li class=menu__item><a class=menu__link href=/blog/>Blog</a></li><li class=menu__item><a class=menu__link href=/services/>Services</a></li><li class=menu__item><a class=menu__link href=/uninotes/>UniNotes</a></li><li class=menu__item><a class=menu__link href=/contact/>Contact</a></li></ul></nav></header><main class=main><nav class="uninotes-breadcrumbs breadcrumbs"><a href=/uninotes/>UniNotes</a></nav><h1>UniNotes</h1><h3 class=uninotes-contents-heading>Contents</h3><div class=uninotes-contents><div class=uninotes-contents__semester><a class=uninotes-contents__sem-link href=/uninotes/s1/>S1</a><div class=uninotes-contents__subject><a class=uninotes-contents__subject-link href=/uninotes/s1/ge-dcm1106/>GE DCM1106</a><ul class=uninotes-contents__units><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/ge-dcm1106/unit1/>Unit 1</a>
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/bo-dcm1109/unit1/self/>Self</a> <span class=uninotes-contents__unit-cats><span class="uninotes-contents__cat uninotes-contents__cat--na">Self</span>
<span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/bo-dcm1109/unit11/>Unit 11</a> <a class="uninotes-contents__cat uninotes-contents__cat--live" href=/uninotes/s1/ge-dcm1106/unit1/live/>Live</a></span></li></ul></div><div class=uninotes-contents__subject><a class=uninotes-contents__subject-link href=/uninotes/s1/et-dcm1107/>ET DCM1107</a><ul class=uninotes-contents__units><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/et-dcm1107/unit1/>Unit 1</a>
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/bo-dcm1109/unit11/self/>Self</a>
<span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/bo-dcm1109/unit2/>Unit 2</a>
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/bo-dcm1109/unit2/self/>Self</a>
<span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/bo-dcm1109/unit3/>Unit 3</a>
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/bo-dcm1109/unit3/self/>Self</a>
<span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li></ul></div><div class=uninotes-contents__subject><a class=uninotes-contents__subject-link href=/uninotes/s1/et-dcm1107/>ET DCM1107</a><ul class=uninotes-contents__units><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/et-dcm1107/unit1/>Unit 1</a>
<span class=uninotes-contents__unit-cats><span class="uninotes-contents__cat uninotes-contents__cat--na">Self</span> <span class=uninotes-contents__unit-cats><span class="uninotes-contents__cat uninotes-contents__cat--na">Self</span>
<a class="uninotes-contents__cat uninotes-contents__cat--live" href=/uninotes/s1/et-dcm1107/unit1/live/>Live</a></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/et-dcm1107/unit2/>Unit 2</a> <a class="uninotes-contents__cat uninotes-contents__cat--live" href=/uninotes/s1/et-dcm1107/unit1/live/>Live</a></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/et-dcm1107/unit2/>Unit 2</a>
<span class=uninotes-contents__unit-cats><span class="uninotes-contents__cat uninotes-contents__cat--na">Self</span> <span class=uninotes-contents__unit-cats><span class="uninotes-contents__cat uninotes-contents__cat--na">Self</span>
@@ -25,9 +19,15 @@ Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu_
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/et-dcm1107/unit6/self/>Self</a> <span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/et-dcm1107/unit6/self/>Self</a>
<span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/et-dcm1107/unit7/>Unit 7</a> <span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/et-dcm1107/unit7/>Unit 7</a>
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/et-dcm1107/unit7/self/>Self</a> <span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/et-dcm1107/unit7/self/>Self</a>
<span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li></ul></div><div class=uninotes-contents__subject><a class=uninotes-contents__subject-link href=/uninotes/s1/ge-dcm1106/>GE DCM1106</a><ul class=uninotes-contents__units><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/ge-dcm1106/unit1/>Unit 1</a> <span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li></ul></div><div class=uninotes-contents__subject><a class=uninotes-contents__subject-link href=/uninotes/s1/bo-dcm1109/>BO DCM1109</a><ul class=uninotes-contents__units><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/bo-dcm1109/unit1/>Unit 1</a>
<span class=uninotes-contents__unit-cats><span class="uninotes-contents__cat uninotes-contents__cat--na">Self</span> <span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/bo-dcm1109/unit1/self/>Self</a>
<a class="uninotes-contents__cat uninotes-contents__cat--live" href=/uninotes/s1/ge-dcm1106/unit1/live/>Live</a></span></li></ul></div><div class=uninotes-contents__subject><a class=uninotes-contents__subject-link href=/uninotes/s1/pbm-dcm1110/>PBM DCM1110</a><ul class=uninotes-contents__units><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/pbm-dcm1110/unit1/>Unit 1</a> <span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/bo-dcm1109/unit2/>Unit 2</a>
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/bo-dcm1109/unit2/self/>Self</a>
<span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/bo-dcm1109/unit3/>Unit 3</a>
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/bo-dcm1109/unit3/self/>Self</a>
<span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/bo-dcm1109/unit11/>Unit 11</a>
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/bo-dcm1109/unit11/self/>Self</a>
<span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span></span></li></ul></div><div class=uninotes-contents__subject><a class=uninotes-contents__subject-link href=/uninotes/s1/pbm-dcm1110/>PBM DCM1110</a><ul class=uninotes-contents__units><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/pbm-dcm1110/unit1/>Unit 1</a>
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/pbm-dcm1110/unit1/self/>Self</a> <span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/pbm-dcm1110/unit1/self/>Self</a>
<a class="uninotes-contents__cat uninotes-contents__cat--live" href=/uninotes/s1/pbm-dcm1110/unit1/live/>Live</a></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/pbm-dcm1110/unit2/>Unit 2</a> <a class="uninotes-contents__cat uninotes-contents__cat--live" href=/uninotes/s1/pbm-dcm1110/unit1/live/>Live</a></span></li><li class=uninotes-contents__unit><a class=uninotes-contents__unit-link href=/uninotes/s1/pbm-dcm1110/unit2/>Unit 2</a>
<span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/pbm-dcm1110/unit2/self/>Self</a> <span class=uninotes-contents__unit-cats><a class="uninotes-contents__cat uninotes-contents__cat--self" href=/uninotes/s1/pbm-dcm1110/unit2/self/>Self</a>

View File

@@ -9,4 +9,5 @@
<a href=/uninotes/s1/bo-dcm1109/index.xml class="mobile-link mobile-link--subscribe"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" aria-hidden="true"><path d="M6.18 15.64a2.18 2.18.0 012.18 2.18c0 1.19-.98 2.18-2.18 2.18C4.98 20 4 19.01 4 17.82a2.18 2.18.0 012.18-2.18M4 4.44A15.56 15.56.0 0119.56 20h-2.83A12.73 12.73.0 004 7.27V4.44m0 5.66a9.9 9.9.0 019.9 9.9h-2.83A7.07 7.07.0 004 12.93V10.1z"/></svg> <a href=/uninotes/s1/bo-dcm1109/index.xml class="mobile-link mobile-link--subscribe"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" aria-hidden="true"><path d="M6.18 15.64a2.18 2.18.0 012.18 2.18c0 1.19-.98 2.18-2.18 2.18C4.98 20 4 19.01 4 17.82a2.18 2.18.0 012.18-2.18M4 4.44A15.56 15.56.0 0119.56 20h-2.83A12.73 12.73.0 004 7.27V4.44m0 5.66a9.9 9.9.0 019.9 9.9h-2.83A7.07 7.07.0 004 12.93V10.1z"/></svg>
Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu__list language__list"><li class=menu__item><a class=menu__link href=/>Home</a></li><li class=menu__item><a class=menu__link href=/blog/>Blog</a></li><li class=menu__item><a class=menu__link href=/services/>Services</a></li><li class=menu__item><a class=menu__link href=/uninotes/>UniNotes</a></li><li class=menu__item><a class=menu__link href=/contact/>Contact</a></li></ul></nav></header><main class=main><nav class="uninotes-breadcrumbs breadcrumbs"><a href=/uninotes/>UniNotes</a> Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu__list language__list"><li class=menu__item><a class=menu__link href=/>Home</a></li><li class=menu__item><a class=menu__link href=/blog/>Blog</a></li><li class=menu__item><a class=menu__link href=/services/>Services</a></li><li class=menu__item><a class=menu__link href=/uninotes/>UniNotes</a></li><li class=menu__item><a class=menu__link href=/contact/>Contact</a></li></ul></nav></header><main class=main><nav class="uninotes-breadcrumbs breadcrumbs"><a href=/uninotes/>UniNotes</a>
<a href=/uninotes/s1/>S1</a> <a href=/uninotes/s1/>S1</a>
<span>BO DCM1109</span></nav><h1>BO DCM1109</h1><ul class="uninotes-list uninotes-list--units"><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/bo-dcm1109/unit1/>Unit 1</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/bo-dcm1109/unit11/>Unit 11</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/bo-dcm1109/unit2/>Unit 2</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/bo-dcm1109/unit3/>Unit 3</a></li></ul><nav class=page-nav><a class=page-nav__next-link href=/uninotes/s1/et-dcm1107/>ET DCM1107</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html> <span>BO DCM1109</span></nav><h1>BO DCM1109</h1><ul class="uninotes-list uninotes-list--units"><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/bo-dcm1109/unit1/>Unit 1</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/bo-dcm1109/unit2/>Unit 2</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/bo-dcm1109/unit3/>Unit 3</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/bo-dcm1109/unit11/>Unit 11</a></li></ul><nav class=page-nav><a class=page-nav__previous-link href=/uninotes/s1/et-dcm1107/>ET DCM1107</a>
<a class=page-nav__next-link href=/uninotes/s1/pbm-dcm1110/>PBM DCM1110 →</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -16,5 +16,5 @@ Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu_
<a href=/uninotes/s1/bo-dcm1109/unit2/>Unit 2</a> <a href=/uninotes/s1/bo-dcm1109/unit2/>Unit 2</a>
<span>Self</span></nav><div class=uninotes-meta><span class=uninotes-meta__pill>S1</span> <span>Self</span></nav><div class=uninotes-meta><span class=uninotes-meta__pill>S1</span>
<span class=uninotes-meta__pill>BO DCM1109</span> <span class=uninotes-meta__pill>BO DCM1109</span>
<span class="uninotes-meta__pill uninotes-meta__pill--self">Self</span></div><h1>Unit 2</h1><details class=toc><summary class=toc__summary>Table of Contents</summary><nav id=TableOfContents><ul><li><ul><li><a href=#april-12-2026><em><strong>April 12, 2026</strong></em></a></li></ul></li><li><a href=#primary-sector>Primary Sector</a></li><li><a href=#secondary-sector>Secondary Sector</a></li><li><a href=#tertiary-sector>Tertiary Sector</a></li></ul></nav></details><h3 class=heading id=april-12-2026><em><strong>April 12, 2026</strong></em><span class=heading__anchor> <a href=#april-12-2026>#</a></span></h3><h2 class=heading id=primary-sector>Primary Sector<span class=heading__anchor> <a href=#primary-sector>#</a></span></h2><p>The Primary Sector comprises the delivery of raw materials up to the finished product. Industries in this sector include mining for oil, coal, iron, and other minerals; Forestry, agriculture, fish farming and land reclamation, etc.</p><h2 class=heading id=secondary-sector>Secondary Sector<span class=heading__anchor> <a href=#secondary-sector>#</a></span></h2><p>The Secondary Sector refines, processes and manufactures. This includes industries like petrochemical refineries, steel-making mills, factories for making equipment and machinery for industry and goods for consumer purchase.</p><h2 class=heading id=tertiary-sector>Tertiary Sector<span class=heading__anchor> <a href=#tertiary-sector>#</a></span></h2><p>This involves the provision of services to businesses as well as final consumers.</p><nav class=page-nav><a class=page-nav__previous-link href=/uninotes/s1/bo-dcm1109/unit11/>← Unit 11</a> <span class="uninotes-meta__pill uninotes-meta__pill--self">Self</span></div><h1>Unit 2</h1><details class=toc><summary class=toc__summary>Table of Contents</summary><nav id=TableOfContents><ul><li><ul><li><a href=#april-12-2026><em><strong>April 12, 2026</strong></em></a></li></ul></li><li><a href=#primary-sector>Primary Sector</a></li><li><a href=#secondary-sector>Secondary Sector</a></li><li><a href=#tertiary-sector>Tertiary Sector</a></li></ul></nav></details><h3 class=heading id=april-12-2026><em><strong>April 12, 2026</strong></em><span class=heading__anchor> <a href=#april-12-2026>#</a></span></h3><h2 class=heading id=primary-sector>Primary Sector<span class=heading__anchor> <a href=#primary-sector>#</a></span></h2><p>The Primary Sector comprises the delivery of raw materials up to the finished product. Industries in this sector include mining for oil, coal, iron, and other minerals; Forestry, agriculture, fish farming and land reclamation, etc.</p><h2 class=heading id=secondary-sector>Secondary Sector<span class=heading__anchor> <a href=#secondary-sector>#</a></span></h2><p>The Secondary Sector refines, processes and manufactures. This includes industries like petrochemical refineries, steel-making mills, factories for making equipment and machinery for industry and goods for consumer purchase.</p><h2 class=heading id=tertiary-sector>Tertiary Sector<span class=heading__anchor> <a href=#tertiary-sector>#</a></span></h2><p>This involves the provision of services to businesses as well as final consumers.</p><nav class=page-nav><a class=page-nav__previous-link href=/uninotes/s1/bo-dcm1109/unit1/>← Unit 1</a>
<a class=page-nav__next-link href=/uninotes/s1/bo-dcm1109/unit3/>Unit 3 →</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html> <a class=page-nav__next-link href=/uninotes/s1/bo-dcm1109/unit3/>Unit 3 →</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html>

View File

@@ -36,4 +36,5 @@ monarch (no longer applicable in India).</li><li>Statutory Companies: Created by
Reserve Bank of India (RBI), Life Insurance Corporation (LIC).</li><li>Registered Companies: Incorporated under the Companies Act, 2013. This includes almost Reserve Bank of India (RBI), Life Insurance Corporation (LIC).</li><li>Registered Companies: Incorporated under the Companies Act, 2013. This includes almost
all modern business entities in India.</li></ol><h3 class=heading id=b-on-the-basis-of-liability>B) On the Basis of Liability<span class=heading__anchor> <a href=#b-on-the-basis-of-liability>#</a></span></h3><ol><li>Company Limited by Shares [Section 2(22)].</li><li>Company Limited by Guarantee [Section 2(21)].</li><li>Unlimited Liability Company [Section 2(92)].</li><li>Company Limited by Both Guarantee and Shares.</li></ol><h3 class=heading id=c-on-the-basis-of-ownership>C) On the Basis of Ownership<span class=heading__anchor> <a href=#c-on-the-basis-of-ownership>#</a></span></h3><ol><li>Private Company (Section 2(68)).</li><li>Public Company (Section 2(71)).</li><li>One Person Company (Section 2(62)).</li></ol><h3 class=heading id=d-on-the-basis-of-control>D) On the Basis of Control<span class=heading__anchor> <a href=#d-on-the-basis-of-control>#</a></span></h3><ol><li>Holding Company: Controls one or more subsidiaries by owning over 50% voting rights or board control.</li><li>Subsidiary Company: Controlled by another company. Example: Jaguar Land Rover all modern business entities in India.</li></ol><h3 class=heading id=b-on-the-basis-of-liability>B) On the Basis of Liability<span class=heading__anchor> <a href=#b-on-the-basis-of-liability>#</a></span></h3><ol><li>Company Limited by Shares [Section 2(22)].</li><li>Company Limited by Guarantee [Section 2(21)].</li><li>Unlimited Liability Company [Section 2(92)].</li><li>Company Limited by Both Guarantee and Shares.</li></ol><h3 class=heading id=c-on-the-basis-of-ownership>C) On the Basis of Ownership<span class=heading__anchor> <a href=#c-on-the-basis-of-ownership>#</a></span></h3><ol><li>Private Company (Section 2(68)).</li><li>Public Company (Section 2(71)).</li><li>One Person Company (Section 2(62)).</li></ol><h3 class=heading id=d-on-the-basis-of-control>D) On the Basis of Control<span class=heading__anchor> <a href=#d-on-the-basis-of-control>#</a></span></h3><ol><li>Holding Company: Controls one or more subsidiaries by owning over 50% voting rights or board control.</li><li>Subsidiary Company: Controlled by another company. Example: Jaguar Land Rover
(subsidiary of Tata Motors).</li></ol><h3 class=heading id=e-on-the-basis-of-nationality>E) On the Basis of Nationality<span class=heading__anchor> <a href=#e-on-the-basis-of-nationality>#</a></span></h3><ol><li>Indian Company: Incorporated under the Companies Act, 2013 and managed in India.</li><li>Foreign Company (Section 2(42)): Incorporated outside India but has a place of business in India. Example: Google India Pvt. Ltd.</li></ol><h3 class=heading id=f-on-the-basis-of-purpose>F) On the Basis of Purpose<span class=heading__anchor> <a href=#f-on-the-basis-of-purpose>#</a></span></h3><ol><li>For-Profit Companies.</li><li>Non-Profit Companies (Section 8): Established for charitable, educational, or social (subsidiary of Tata Motors).</li></ol><h3 class=heading id=e-on-the-basis-of-nationality>E) On the Basis of Nationality<span class=heading__anchor> <a href=#e-on-the-basis-of-nationality>#</a></span></h3><ol><li>Indian Company: Incorporated under the Companies Act, 2013 and managed in India.</li><li>Foreign Company (Section 2(42)): Incorporated outside India but has a place of business in India. Example: Google India Pvt. Ltd.</li></ol><h3 class=heading id=f-on-the-basis-of-purpose>F) On the Basis of Purpose<span class=heading__anchor> <a href=#f-on-the-basis-of-purpose>#</a></span></h3><ol><li>For-Profit Companies.</li><li>Non-Profit Companies (Section 8): Established for charitable, educational, or social
purposes. Profits are reinvested to promote their objectives. Example: CRY Foundation.</li></ol><nav class=page-nav><a class=page-nav__previous-link href=/uninotes/s1/bo-dcm1109/unit2/>← Unit 2</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html> purposes. Profits are reinvested to promote their objectives. Example: CRY Foundation.</li></ol><nav class=page-nav><a class=page-nav__previous-link href=/uninotes/s1/bo-dcm1109/unit2/>← Unit 2</a>
<a class=page-nav__next-link href=/uninotes/s1/bo-dcm1109/unit11/>Unit 11 →</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html>

View File

@@ -9,5 +9,5 @@
<a href=/uninotes/s1/et-dcm1107/index.xml class="mobile-link mobile-link--subscribe"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" aria-hidden="true"><path d="M6.18 15.64a2.18 2.18.0 012.18 2.18c0 1.19-.98 2.18-2.18 2.18C4.98 20 4 19.01 4 17.82a2.18 2.18.0 012.18-2.18M4 4.44A15.56 15.56.0 0119.56 20h-2.83A12.73 12.73.0 004 7.27V4.44m0 5.66a9.9 9.9.0 019.9 9.9h-2.83A7.07 7.07.0 004 12.93V10.1z"/></svg> <a href=/uninotes/s1/et-dcm1107/index.xml class="mobile-link mobile-link--subscribe"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" aria-hidden="true"><path d="M6.18 15.64a2.18 2.18.0 012.18 2.18c0 1.19-.98 2.18-2.18 2.18C4.98 20 4 19.01 4 17.82a2.18 2.18.0 012.18-2.18M4 4.44A15.56 15.56.0 0119.56 20h-2.83A12.73 12.73.0 004 7.27V4.44m0 5.66a9.9 9.9.0 019.9 9.9h-2.83A7.07 7.07.0 004 12.93V10.1z"/></svg>
Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu__list language__list"><li class=menu__item><a class=menu__link href=/>Home</a></li><li class=menu__item><a class=menu__link href=/blog/>Blog</a></li><li class=menu__item><a class=menu__link href=/services/>Services</a></li><li class=menu__item><a class=menu__link href=/uninotes/>UniNotes</a></li><li class=menu__item><a class=menu__link href=/contact/>Contact</a></li></ul></nav></header><main class=main><nav class="uninotes-breadcrumbs breadcrumbs"><a href=/uninotes/>UniNotes</a> Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu__list language__list"><li class=menu__item><a class=menu__link href=/>Home</a></li><li class=menu__item><a class=menu__link href=/blog/>Blog</a></li><li class=menu__item><a class=menu__link href=/services/>Services</a></li><li class=menu__item><a class=menu__link href=/uninotes/>UniNotes</a></li><li class=menu__item><a class=menu__link href=/contact/>Contact</a></li></ul></nav></header><main class=main><nav class="uninotes-breadcrumbs breadcrumbs"><a href=/uninotes/>UniNotes</a>
<a href=/uninotes/s1/>S1</a> <a href=/uninotes/s1/>S1</a>
<span>ET DCM1107</span></nav><h1>ET DCM1107</h1><ul class="uninotes-list uninotes-list--units"><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/et-dcm1107/unit1/>Unit 1</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/et-dcm1107/unit2/>Unit 2</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/et-dcm1107/unit5/>Unit 5</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/et-dcm1107/unit6/>Unit 6</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/et-dcm1107/unit7/>Unit 7</a></li></ul><nav class=page-nav><a class=page-nav__previous-link href=/uninotes/s1/bo-dcm1109/>BO DCM1109</a> <span>ET DCM1107</span></nav><h1>ET DCM1107</h1><ul class="uninotes-list uninotes-list--units"><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/et-dcm1107/unit1/>Unit 1</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/et-dcm1107/unit2/>Unit 2</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/et-dcm1107/unit5/>Unit 5</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/et-dcm1107/unit6/>Unit 6</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/et-dcm1107/unit7/>Unit 7</a></li></ul><nav class=page-nav><a class=page-nav__previous-link href=/uninotes/s1/ge-dcm1106/>GE DCM1106</a>
<a class=page-nav__next-link href=/uninotes/s1/ge-dcm1106/>GE DCM1106</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html> <a class=page-nav__next-link href=/uninotes/s1/bo-dcm1109/>BO DCM1109</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html>

View File

@@ -9,5 +9,4 @@
<a href=/uninotes/s1/ge-dcm1106/index.xml class="mobile-link mobile-link--subscribe"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" aria-hidden="true"><path d="M6.18 15.64a2.18 2.18.0 012.18 2.18c0 1.19-.98 2.18-2.18 2.18C4.98 20 4 19.01 4 17.82a2.18 2.18.0 012.18-2.18M4 4.44A15.56 15.56.0 0119.56 20h-2.83A12.73 12.73.0 004 7.27V4.44m0 5.66a9.9 9.9.0 019.9 9.9h-2.83A7.07 7.07.0 004 12.93V10.1z"/></svg> <a href=/uninotes/s1/ge-dcm1106/index.xml class="mobile-link mobile-link--subscribe"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" aria-hidden="true"><path d="M6.18 15.64a2.18 2.18.0 012.18 2.18c0 1.19-.98 2.18-2.18 2.18C4.98 20 4 19.01 4 17.82a2.18 2.18.0 012.18-2.18M4 4.44A15.56 15.56.0 0119.56 20h-2.83A12.73 12.73.0 004 7.27V4.44m0 5.66a9.9 9.9.0 019.9 9.9h-2.83A7.07 7.07.0 004 12.93V10.1z"/></svg>
Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu__list language__list"><li class=menu__item><a class=menu__link href=/>Home</a></li><li class=menu__item><a class=menu__link href=/blog/>Blog</a></li><li class=menu__item><a class=menu__link href=/services/>Services</a></li><li class=menu__item><a class=menu__link href=/uninotes/>UniNotes</a></li><li class=menu__item><a class=menu__link href=/contact/>Contact</a></li></ul></nav></header><main class=main><nav class="uninotes-breadcrumbs breadcrumbs"><a href=/uninotes/>UniNotes</a> Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu__list language__list"><li class=menu__item><a class=menu__link href=/>Home</a></li><li class=menu__item><a class=menu__link href=/blog/>Blog</a></li><li class=menu__item><a class=menu__link href=/services/>Services</a></li><li class=menu__item><a class=menu__link href=/uninotes/>UniNotes</a></li><li class=menu__item><a class=menu__link href=/contact/>Contact</a></li></ul></nav></header><main class=main><nav class="uninotes-breadcrumbs breadcrumbs"><a href=/uninotes/>UniNotes</a>
<a href=/uninotes/s1/>S1</a> <a href=/uninotes/s1/>S1</a>
<span>GE DCM1106</span></nav><h1>GE DCM1106</h1><ul class="uninotes-list uninotes-list--units"><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/ge-dcm1106/unit1/>Unit 1</a></li></ul><nav class=page-nav><a class=page-nav__previous-link href=/uninotes/s1/et-dcm1107/>ET DCM1107</a> <span>GE DCM1106</span></nav><h1>GE DCM1106</h1><ul class="uninotes-list uninotes-list--units"><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/ge-dcm1106/unit1/>Unit 1</a></li></ul><nav class=page-nav><a class=page-nav__next-link href=/uninotes/s1/et-dcm1107/>ET DCM1107</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html>
<a class=page-nav__next-link href=/uninotes/s1/pbm-dcm1110/>PBM DCM1110 →</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html>

View File

@@ -9,4 +9,4 @@
<a href=/uninotes/s1/pbm-dcm1110/index.xml class="mobile-link mobile-link--subscribe"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" aria-hidden="true"><path d="M6.18 15.64a2.18 2.18.0 012.18 2.18c0 1.19-.98 2.18-2.18 2.18C4.98 20 4 19.01 4 17.82a2.18 2.18.0 012.18-2.18M4 4.44A15.56 15.56.0 0119.56 20h-2.83A12.73 12.73.0 004 7.27V4.44m0 5.66a9.9 9.9.0 019.9 9.9h-2.83A7.07 7.07.0 004 12.93V10.1z"/></svg> <a href=/uninotes/s1/pbm-dcm1110/index.xml class="mobile-link mobile-link--subscribe"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" aria-hidden="true"><path d="M6.18 15.64a2.18 2.18.0 012.18 2.18c0 1.19-.98 2.18-2.18 2.18C4.98 20 4 19.01 4 17.82a2.18 2.18.0 012.18-2.18M4 4.44A15.56 15.56.0 0119.56 20h-2.83A12.73 12.73.0 004 7.27V4.44m0 5.66a9.9 9.9.0 019.9 9.9h-2.83A7.07 7.07.0 004 12.93V10.1z"/></svg>
Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu__list language__list"><li class=menu__item><a class=menu__link href=/>Home</a></li><li class=menu__item><a class=menu__link href=/blog/>Blog</a></li><li class=menu__item><a class=menu__link href=/services/>Services</a></li><li class=menu__item><a class=menu__link href=/uninotes/>UniNotes</a></li><li class=menu__item><a class=menu__link href=/contact/>Contact</a></li></ul></nav></header><main class=main><nav class="uninotes-breadcrumbs breadcrumbs"><a href=/uninotes/>UniNotes</a> Subscribe</a></div></div></div></div><nav class="menu language"><ul class="menu__list language__list"><li class=menu__item><a class=menu__link href=/>Home</a></li><li class=menu__item><a class=menu__link href=/blog/>Blog</a></li><li class=menu__item><a class=menu__link href=/services/>Services</a></li><li class=menu__item><a class=menu__link href=/uninotes/>UniNotes</a></li><li class=menu__item><a class=menu__link href=/contact/>Contact</a></li></ul></nav></header><main class=main><nav class="uninotes-breadcrumbs breadcrumbs"><a href=/uninotes/>UniNotes</a>
<a href=/uninotes/s1/>S1</a> <a href=/uninotes/s1/>S1</a>
<span>PBM DCM1110</span></nav><h1>PBM DCM1110</h1><ul class="uninotes-list uninotes-list--units"><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/pbm-dcm1110/unit1/>Unit 1</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/pbm-dcm1110/unit2/>Unit 2</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/pbm-dcm1110/unit3/>Unit 3</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/pbm-dcm1110/unit4/>Unit 4</a></li></ul><nav class=page-nav><a class=page-nav__previous-link href=/uninotes/s1/ge-dcm1106/>GE DCM1106</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html> <span>PBM DCM1110</span></nav><h1>PBM DCM1110</h1><ul class="uninotes-list uninotes-list--units"><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/pbm-dcm1110/unit1/>Unit 1</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/pbm-dcm1110/unit2/>Unit 2</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/pbm-dcm1110/unit3/>Unit 3</a></li><li class=uninotes-list__item><a class=uninotes-list__link href=/uninotes/s1/pbm-dcm1110/unit4/>Unit 4</a></li></ul><nav class=page-nav><a class=page-nav__previous-link href=/uninotes/s1/bo-dcm1109/>BO DCM1109</a></nav></main><footer class=footer><p class=footer__copyright-notice>&copy; <a href=https://freedoms4.org>freedoms4.org</a> <a href=/changelog/>Changelog</a></p><p class=footer__theme-info>Built with <a href=https://gohugo.io>Hugo</a> and based on <a href=https://github.com/CyrusYip/hugo-theme-yue>Yue</a> theme</p></footer><script>(function(){var e=document.getElementById("theme-toggle");if(!e)return;function t(){var e=localStorage.getItem("theme");return e?e:window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark"}function n(e){document.documentElement.setAttribute("data-theme",e),localStorage.setItem("theme",e)}n(t()),e.addEventListener("click",function(){var e=document.documentElement.getAttribute("data-theme")||t();n(e==="dark"?"light":"dark")})})()</script><script>(function(){var e=document.getElementById("mobile-menu-check");if(!e)return;document.addEventListener("click",function(t){if(!e.checked)return;var n=e.closest(".brand__mobile-menu");n&&!n.contains(t.target)&&(e.checked=!1)})})()</script></body></html>

View File

@@ -28,25 +28,41 @@
<h1>{{ $subjectCode }}</h1> <h1>{{ $subjectCode }}</h1>
<ul class="uninotes-list uninotes-list--units"> {{/* Collect unique unit labels and sort numerically */}}
{{ $seenUnits := slice }} {{ $seenUnits := slice }}
{{ range .Pages.ByWeight }} {{ $unitDicts := slice }}
{{ $unitLabel := (.Params.unit | default .Title) }} {{ range .Pages }}
{{ if not (in $seenUnits $unitLabel) }} {{ $unitLabel := (.Params.unit | default .Title) }}
{{ $seenUnits = $seenUnits | append $unitLabel }} {{ if not (in $seenUnits $unitLabel) }}
<li class="uninotes-list__item"> {{ $seenUnits = $seenUnits | append $unitLabel }}
<a class="uninotes-list__link" href="{{ .Params.uniturl }}"> {{/* Extract unit number for numeric sort, e.g. "Unit 11" → 11 */}}
{{ $unitLabel }} {{ $uParts := split $unitLabel " " }}
</a> {{ $uLast := index $uParts (sub (len $uParts) 1) }}
</li> {{ $uNumStr := "" }}
{{ range (split $uLast "") }}
{{ if ge . "0" }}{{ if le . "9" }}{{ $uNumStr = printf "%s%s" $uNumStr . }}{{ end }}{{ end }}
{{ end }} {{ end }}
{{ $uNum := int ($uNumStr | default "0") }}
{{ $unitDicts = $unitDicts | append (dict "label" $unitLabel "page" . "num" $uNum) }}
{{ end }}
{{ end }}
{{ $sortedUnitDicts := sort $unitDicts "num" }}
<ul class="uninotes-list uninotes-list--units">
{{ range $sortedUnitDicts }}
<li class="uninotes-list__item">
<a class="uninotes-list__link" href="{{ .page.Params.uniturl }}">
{{ .label }}
</a>
</li>
{{ end }} {{ end }}
</ul> </ul>
{{/* Subject prev/next — siblings in same semester */}} {{/* Subject prev/next — siblings in same semester, sorted numerically by code number */}}
{{ if $semester }} {{ if $semester }}
{{ $semPage := site.GetPage (printf "/semester/%s" ($semester | urlize)) }} {{ $semPage := site.GetPage (printf "/semester/%s" ($semester | urlize)) }}
{{ if $semPage }} {{ if $semPage }}
{{/* Collect unique subject codes */}}
{{ $siblingCodes := slice }} {{ $siblingCodes := slice }}
{{ range $semPage.Pages }} {{ range $semPage.Pages }}
{{ $raw := .Params.subjectcode }} {{ $raw := .Params.subjectcode }}
@@ -60,23 +76,37 @@
{{ $siblingCodes = $siblingCodes | append $code }} {{ $siblingCodes = $siblingCodes | append $code }}
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ $siblingCodes = sort $siblingCodes }}
{{ if gt (len $siblingCodes) 1 }} {{/* Sort subject codes numerically by extracting the number (e.g. "BO DCM1109" → 1109) */}}
{{ $codeDicts := slice }}
{{ range $siblingCodes }}
{{ $code := . }}
{{ $parts := split $code " " }}
{{ $lastPart := index $parts (sub (len $parts) 1) }}
{{ $numStr := "" }}
{{ range (split $lastPart "") }}
{{ if ge . "0" }}{{ if le . "9" }}{{ $numStr = printf "%s%s" $numStr . }}{{ end }}{{ end }}
{{ end }}
{{ $num := int ($numStr | default "0") }}
{{ $codeDicts = $codeDicts | append (dict "code" $code "num" $num) }}
{{ end }}
{{ $sortedCodeDicts := sort $codeDicts "num" }}
{{ if gt (len $sortedCodeDicts) 1 }}
{{ $currentIdx := 0 }} {{ $currentIdx := 0 }}
{{ range $i, $c := $siblingCodes }} {{ range $i, $d := $sortedCodeDicts }}
{{ if eq $c $subjectCode }}{{ $currentIdx = $i }}{{ end }} {{ if eq $d.code $subjectCode }}{{ $currentIdx = $i }}{{ end }}
{{ end }} {{ end }}
<nav class="page-nav"> <nav class="page-nav">
{{ if gt $currentIdx 0 }} {{ if gt $currentIdx 0 }}
{{ $prevCode := index $siblingCodes (sub $currentIdx 1) }} {{ $prevCode := (index $sortedCodeDicts (sub $currentIdx 1)).code }}
{{ $prevPage := site.GetPage (printf "/subjectcode/%s" ($prevCode | urlize)) }} {{ $prevPage := site.GetPage (printf "/subjectcode/%s" ($prevCode | urlize)) }}
{{ if $prevPage }} {{ if $prevPage }}
<a class="page-nav__previous-link" href="{{ $prevPage.RelPermalink }}">← {{ $prevCode }}</a> <a class="page-nav__previous-link" href="{{ $prevPage.RelPermalink }}">← {{ $prevCode }}</a>
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ if lt $currentIdx (sub (len $siblingCodes) 1) }} {{ if lt $currentIdx (sub (len $sortedCodeDicts) 1) }}
{{ $nextCode := index $siblingCodes (add $currentIdx 1) }} {{ $nextCode := (index $sortedCodeDicts (add $currentIdx 1)).code }}
{{ $nextPage := site.GetPage (printf "/subjectcode/%s" ($nextCode | urlize)) }} {{ $nextPage := site.GetPage (printf "/subjectcode/%s" ($nextCode | urlize)) }}
{{ if $nextPage }} {{ if $nextPage }}
<a class="page-nav__next-link" href="{{ $nextPage.RelPermalink }}">{{ $nextCode }} →</a> <a class="page-nav__next-link" href="{{ $nextPage.RelPermalink }}">{{ $nextCode }} →</a>

View File

@@ -8,65 +8,110 @@
<h3 class="uninotes-contents-heading">Contents</h3> <h3 class="uninotes-contents-heading">Contents</h3>
{{/* Build full tree: semester → subjectcode → units → self/live */}} {{ $semesters := {{/* Build full tree: semester → subjectcode → units → self/live */}}
site.Taxonomies.semester.Alphabetical }} {{ $semesters := site.Taxonomies.semester.Alphabetical }}
<div class="uninotes-contents"> <div class="uninotes-contents">
{{ range $semesters }} {{ $semName := .Page.Title }} {{ $semPages := .Pages }} {{/* Collect {{ range $semesters }}
unique subject codes for this semester */}} {{ $subjectCodes := slice }} {{ range $semPages }} {{ $semName := .Page.Title }}
{{ $raw := .Params.subjectcode }} {{ $code := "" }} {{ if reflect.IsSlice $raw }}{{ $code = {{ $semPages := .Pages }}
index $raw 0 }}{{ else }}{{ $code = $raw }}{{ end }} {{ if and $code (not (in $subjectCodes
$code)) }} {{ $subjectCodes = $subjectCodes | append $code }} {{ end }} {{ end }} {{ {{/* Collect unique subject codes for this semester */}}
$subjectCodes = sort $subjectCodes }} {{ if $subjectCodes }} {{ $subjectCodes := slice }}
{{ range $semPages }}
{{ $raw := .Params.subjectcode }}
{{ $code := "" }}
{{ if reflect.IsSlice $raw }}{{ $code = index $raw 0 }}{{ else }}{{ $code = $raw }}{{ end }}
{{ if and $code (not (in $subjectCodes $code)) }}
{{ $subjectCodes = $subjectCodes | append $code }}
{{ end }}
{{ end }}
{{/* Sort subject codes numerically by extracting the number from the code (e.g. "BO DCM1109" → 1109) */}}
{{ $codeDicts := slice }}
{{ range $subjectCodes }}
{{ $code := . }}
{{ $parts := split $code " " }}
{{ $lastPart := index $parts (sub (len $parts) 1) }}
{{/* Extract digits only from the last part */}}
{{ $numStr := "" }}
{{ range (split $lastPart "") }}
{{ if ge . "0" }}{{ if le . "9" }}{{ $numStr = printf "%s%s" $numStr . }}{{ end }}{{ end }}
{{ end }}
{{ $num := int ($numStr | default "0") }}
{{ $codeDicts = $codeDicts | append (dict "code" $code "num" $num) }}
{{ end }}
{{ $sortedCodeDicts := sort $codeDicts "num" }}
{{ if $sortedCodeDicts }}
<div class="uninotes-contents__semester"> <div class="uninotes-contents__semester">
<a class="uninotes-contents__sem-link" href="{{ .Page.RelPermalink }}">{{ $semName }}</a> <a class="uninotes-contents__sem-link" href="{{ .Page.RelPermalink }}">{{ $semName }}</a>
{{ range $subjectCodes }} {{ $code := . }} {{ $subPage := site.GetPage (printf {{ range $sortedCodeDicts }}
"/subjectcode/%s" ($code | urlize)) }} {{/* Collect one representative page per unit for {{ $code := .code }}
this subject */}} {{ $units := slice }} {{ $seenUnits := slice }} {{ range {{ $subPage := site.GetPage (printf "/subjectcode/%s" ($code | urlize)) }}
$semPages.ByWeight }} {{ $raw := .Params.subjectcode }} {{ $sc := "" }} {{ if
reflect.IsSlice $raw }}{{ $sc = index $raw 0 }}{{ else }}{{ $sc = $raw }}{{ end }} {{ if eq {{/* Collect one representative page per unit for this subject, then sort numerically */}}
$sc $code }} {{ $unitLabel := (.Params.unit | default .Title) }} {{ if not (in $seenUnits {{ $unitDicts := slice }}
$unitLabel) }} {{ $seenUnits = $seenUnits | append $unitLabel }} {{ $units = $units | append {{ $seenUnits := slice }}
. }} {{ end }} {{ end }} {{ end }} {{ range $semPages.ByWeight }}
{{ $raw := .Params.subjectcode }}
{{ $sc := "" }}
{{ if reflect.IsSlice $raw }}{{ $sc = index $raw 0 }}{{ else }}{{ $sc = $raw }}{{ end }}
{{ if eq $sc $code }}
{{ $unitLabel := (.Params.unit | default .Title) }}
{{ if not (in $seenUnits $unitLabel) }}
{{ $seenUnits = $seenUnits | append $unitLabel }}
{{/* Extract unit number for numeric sort, e.g. "Unit 11" → 11 */}}
{{ $uParts := split $unitLabel " " }}
{{ $uLast := index $uParts (sub (len $uParts) 1) }}
{{ $uNumStr := "" }}
{{ range (split $uLast "") }}
{{ if ge . "0" }}{{ if le . "9" }}{{ $uNumStr = printf "%s%s" $uNumStr . }}{{ end }}{{ end }}
{{ end }}
{{ $uNum := int ($uNumStr | default "0") }}
{{ $unitDicts = $unitDicts | append (dict "label" $unitLabel "page" . "num" $uNum) }}
{{ end }}
{{ end }}
{{ end }}
{{ $sortedUnitDicts := sort $unitDicts "num" }}
<div class="uninotes-contents__subject"> <div class="uninotes-contents__subject">
{{ if $subPage }} {{ if $subPage }}
<a class="uninotes-contents__subject-link" href="{{ $subPage.RelPermalink }}" <a class="uninotes-contents__subject-link" href="{{ $subPage.RelPermalink }}">{{ $code }}</a>
>{{ $code }}</a
>
{{ else }} {{ else }}
<span class="uninotes-contents__subject-link">{{ $code }}</span> <span class="uninotes-contents__subject-link">{{ $code }}</span>
{{ end }} {{ end }}
<ul class="uninotes-contents__units"> <ul class="uninotes-contents__units">
{{ range $units }} {{ $unitLabel := (.Params.unit | default .Title) }} {{ $unitUrl {{ range $sortedUnitDicts }}
:= .Params.uniturl }} {{/* Find Self and Live URLs for this unit */}} {{ $selfUrl := {{ $unitLabel := .label }}
"" }} {{ $liveUrl := "" }} {{ range $semPages }} {{ $raw := .Params.subjectcode }} {{ $repPage := .page }}
{{ $sc := "" }} {{ if reflect.IsSlice $raw }}{{ $sc = index $raw 0 }}{{ else }}{{ {{ $unitUrl := $repPage.Params.uniturl }}
$sc = $raw }}{{ end }} {{ $ul := (.Params.unit | default .Title) }} {{ if and (eq {{/* Find Self and Live URLs for this unit */}}
$sc $code) (eq $ul $unitLabel) }} {{ $cat := lower .Params.notecategory }} {{ if eq {{ $selfUrl := "" }}
$cat "self" }}{{ $selfUrl = .RelPermalink }}{{ end }} {{ if eq $cat "live" }}{{ {{ $liveUrl := "" }}
$liveUrl = .RelPermalink }}{{ end }} {{ end }} {{ end }} {{ range $semPages }}
{{ $raw := .Params.subjectcode }}
{{ $sc := "" }}
{{ if reflect.IsSlice $raw }}{{ $sc = index $raw 0 }}{{ else }}{{ $sc = $raw }}{{ end }}
{{ $ul := (.Params.unit | default .Title) }}
{{ if and (eq $sc $code) (eq $ul $unitLabel) }}
{{ $cat := lower .Params.notecategory }}
{{ if eq $cat "self" }}{{ $selfUrl = .RelPermalink }}{{ end }}
{{ if eq $cat "live" }}{{ $liveUrl = .RelPermalink }}{{ end }}
{{ end }}
{{ end }}
<li class="uninotes-contents__unit"> <li class="uninotes-contents__unit">
<a class="uninotes-contents__unit-link" href="{{ $unitUrl }}" <a class="uninotes-contents__unit-link" href="{{ $unitUrl }}">{{ $unitLabel }}</a>
>{{ $unitLabel }}</a
>
<span class="uninotes-contents__unit-cats"> <span class="uninotes-contents__unit-cats">
{{ if $selfUrl }} {{ if $selfUrl }}
<a <a class="uninotes-contents__cat uninotes-contents__cat--self" href="{{ $selfUrl }}">Self</a>
class="uninotes-contents__cat uninotes-contents__cat--self"
href="{{ $selfUrl }}"
>Self</a
>
{{ else }} {{ else }}
<span class="uninotes-contents__cat uninotes-contents__cat--na">Self</span> <span class="uninotes-contents__cat uninotes-contents__cat--na">Self</span>
{{ end }} {{ if $liveUrl }} {{ end }}
<a {{ if $liveUrl }}
class="uninotes-contents__cat uninotes-contents__cat--live" <a class="uninotes-contents__cat uninotes-contents__cat--live" href="{{ $liveUrl }}">Live</a>
href="{{ $liveUrl }}"
>Live</a
>
{{ else }} {{ else }}
<span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span> <span class="uninotes-contents__cat uninotes-contents__cat--na">Live</span>
{{ end }} {{ end }}
@@ -77,7 +122,8 @@ site.Taxonomies.semester.Alphabetical }}
</div> </div>
{{ end }} {{ end }}
</div> </div>
{{ end }} {{ end }} {{ end }}
{{ end }}
</div> </div>
{{ end }} {{ end }}

View File

@@ -50,34 +50,45 @@
{{ partial "page/terms.html" (dict "taxonomy" "tags" "page" .) }} {{ partial "page/terms.html" (dict "taxonomy" "tags" "page" .) }}
{{ partial "page/terms.html" (dict "taxonomy" "categories" "page" .) }} {{ partial "page/terms.html" (dict "taxonomy" "categories" "page" .) }}
{{/* Next/prev among sibling UNITS in the same subjectcode — deduplicated by unit label */}} {{/* Next/prev among sibling UNITS in the same subjectcode — sorted numerically */}}
{{ if $subjectcode }} {{ if $subjectcode }}
{{ $subPage := site.GetPage (printf "/subjectcode/%s" ($subjectcode | urlize)) }} {{ $subPage := site.GetPage (printf "/subjectcode/%s" ($subjectcode | urlize)) }}
{{ if $subPage }} {{ if $subPage }}
{{/* Build a deduplicated list of units: one entry per unit label, using the Self page as representative */}} {{/* Build deduplicated unit list with numeric sort key */}}
{{ $unitMap := slice }}
{{ $seenUnits := slice }} {{ $seenUnits := slice }}
{{ range $subPage.Pages.ByWeight }} {{ $unitDicts := slice }}
{{ range $subPage.Pages }}
{{ $unitLabel := (.Params.unit | default .Title) }} {{ $unitLabel := (.Params.unit | default .Title) }}
{{ if not (in $seenUnits $unitLabel) }} {{ if not (in $seenUnits $unitLabel) }}
{{ $seenUnits = $seenUnits | append $unitLabel }} {{ $seenUnits = $seenUnits | append $unitLabel }}
{{ $unitMap = $unitMap | append . }} {{/* Extract unit number for numeric sort, e.g. "Unit 11" → 11 */}}
{{ $uParts := split $unitLabel " " }}
{{ $uLast := index $uParts (sub (len $uParts) 1) }}
{{ $uNumStr := "" }}
{{ range (split $uLast "") }}
{{ if ge . "0" }}{{ if le . "9" }}{{ $uNumStr = printf "%s%s" $uNumStr . }}{{ end }}{{ end }}
{{ end }}
{{ $uNum := int ($uNumStr | default "0") }}
{{ $unitDicts = $unitDicts | append (dict "label" $unitLabel "page" . "num" $uNum) }}
{{ end }} {{ end }}
{{ end }} {{ end }}
{{ $sortedUnitDicts := sort $unitDicts "num" }}
{{ $currentUnit := (.Params.unit | default .Title) }} {{ $currentUnit := (.Params.unit | default .Title) }}
{{ $currentIdx := 0 }} {{ $currentIdx := 0 }}
{{ range $i, $p := $unitMap }} {{ range $i, $d := $sortedUnitDicts }}
{{ if eq ($p.Params.unit | default $p.Title) $currentUnit }}{{ $currentIdx = $i }}{{ end }} {{ if eq $d.label $currentUnit }}{{ $currentIdx = $i }}{{ end }}
{{ end }} {{ end }}
{{ if gt (len $unitMap) 1 }}
{{ if gt (len $sortedUnitDicts) 1 }}
<nav class="page-nav"> <nav class="page-nav">
{{ if gt $currentIdx 0 }} {{ if gt $currentIdx 0 }}
{{ $prev := index $unitMap (sub $currentIdx 1) }} {{ $prev := (index $sortedUnitDicts (sub $currentIdx 1)) }}
<a class="page-nav__previous-link" href="{{ $prev.Params.uniturl }}">← {{ $prev.Params.unit | default $prev.Title }}</a> <a class="page-nav__previous-link" href="{{ $prev.page.Params.uniturl }}">← {{ $prev.label }}</a>
{{ end }} {{ end }}
{{ if lt $currentIdx (sub (len $unitMap) 1) }} {{ if lt $currentIdx (sub (len $sortedUnitDicts) 1) }}
{{ $next := index $unitMap (add $currentIdx 1) }} {{ $next := (index $sortedUnitDicts (add $currentIdx 1)) }}
<a class="page-nav__next-link" href="{{ $next.Params.uniturl }}">{{ $next.Params.unit | default $next.Title }} →</a> <a class="page-nav__next-link" href="{{ $next.page.Params.uniturl }}">{{ $next.label }} →</a>
{{ end }} {{ end }}
</nav> </nav>
{{ end }} {{ end }}