course: bo-logic, bo-table
This commit is contained in:
@ -5,6 +5,7 @@ function addPageNumbers() {
|
||||
let div = document.createElement('div')
|
||||
div.classList.add('page-number')
|
||||
div.textContent = i
|
||||
pages[i - 1].id = 'page-' + i
|
||||
pages[i - 1].appendChild(div)
|
||||
}
|
||||
}
|
||||
@ -17,7 +18,7 @@ function addTableOfContents() {
|
||||
|
||||
let prefix_counter = [0, 0, 0]
|
||||
let page_counter = 2
|
||||
let page
|
||||
let page = document.querySelector('section')
|
||||
|
||||
for (const h of hs) {
|
||||
let level = {
|
||||
@ -38,16 +39,19 @@ function addTableOfContents() {
|
||||
|
||||
let li = document.createElement('li')
|
||||
let name = document.createElement('span')
|
||||
let page_number = document.createElement('span')
|
||||
let page_number = document.createElement('a')
|
||||
|
||||
name.innerHTML = prefix + ' - ' + h.innerHTML
|
||||
h.innerHTML = name.innerHTML
|
||||
|
||||
let cur_page = h.closest('section')
|
||||
if (page != cur_page) {
|
||||
page = cur_page
|
||||
page_counter++
|
||||
while (page && page != cur_page) {
|
||||
page = page.nextElementSibling
|
||||
if (page.tagName == 'SECTION') {
|
||||
page_counter++
|
||||
}
|
||||
}
|
||||
page_number.href = '#page-' + page_counter
|
||||
page_number.innerHTML = page_counter
|
||||
|
||||
li.append(name, page_number)
|
||||
@ -84,18 +88,22 @@ function addCaptions() {
|
||||
'IMG': obj.alt,
|
||||
'TABLE': obj.dataset.alt,
|
||||
}[obj.tagName]
|
||||
|
||||
|
||||
if (obj.dataset.tag) {
|
||||
counter_by_tag[obj.dataset.tag] = obj_counter[obj.tagName]
|
||||
}
|
||||
|
||||
let div = document.createElement('div')
|
||||
div.classList.add(...({
|
||||
'IMG': ['col'],
|
||||
'IMG': ['col', 'y-center'],
|
||||
'TABLE': ['colr', 'y-start'],
|
||||
})[obj.tagName])
|
||||
div.style.cssText = obj.style.cssText
|
||||
obj.style.cssText = 'width: 100%'
|
||||
if (obj.dataset.style) {
|
||||
obj.style = obj.dataset.style
|
||||
} else {
|
||||
obj.style.cssText = 'width: 100%'
|
||||
}
|
||||
|
||||
let prev = obj.previousSibling
|
||||
obj.remove()
|
||||
@ -105,7 +113,6 @@ function addCaptions() {
|
||||
}
|
||||
|
||||
const refs = document.querySelectorAll('span[data-ref]')
|
||||
console.log(refs)
|
||||
|
||||
for (const ref of refs) {
|
||||
ref.innerHTML = counter_by_tag[ref.dataset.ref] ?? 'без номера'
|
||||
@ -146,8 +153,8 @@ function genTables() {
|
||||
break
|
||||
|
||||
case '$':
|
||||
const args_end = gen.indexOf('$', i+1)
|
||||
const args = gen.slice(i+1, args_end).split(',')
|
||||
const args_end = gen.indexOf('$', i + 1)
|
||||
const args = gen.slice(i + 1, args_end).split(',')
|
||||
switch (args[0]) {
|
||||
case 'C':
|
||||
dot.colSpan = +args[1]
|
||||
@ -181,8 +188,19 @@ function genMathML() {
|
||||
TeXZilla.filterElement(math)
|
||||
}
|
||||
|
||||
function handleQueryParams() {
|
||||
const params = new URLSearchParams(location.search)
|
||||
if (params.has('printable')) {
|
||||
const pages = document.querySelectorAll('section.landscape')
|
||||
for (const page of pages) {
|
||||
page.style.transform = 'rotate(90deg)'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
addTableOfContents()
|
||||
addPageNumbers()
|
||||
addCaptions()
|
||||
genTables()
|
||||
genMathML()
|
||||
handleQueryParams()
|
||||
|
||||
Reference in New Issue
Block a user