mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-03-30 18:35:49 +00:00
* website: add fontmatter & improve image URLs where necessary * website: add docs to website * website: add prismjs for code highlighting * website: change npm install position in web.sh * website: fix an image URL in lang/cs/README.md * website: improve image paths in lang/cs/translations.md * website: add responsiveness & improve stylings of docs * website: add dir to navbar in blog & docs * website: remove scroll in mobile dropdown menu * website: remove rfcs & add guide docs to website * website: remove file renaming script from web.sh * website: add menu to docs in nav * website: add hash list & add scroll to headers * website: customize docs frontmatter through JS * website: remove supported_languages.json * website: move merge_translations.js to JS folder * website: add the following changes to docs - add frontmatter to new doc merged from master - add ignoreForWeb property to frontmatter of README.md docs * website: remove package-lock.json from .gitignore * website: add package-lock.json from .gitignore * website: add no docs message to docs dropdown * website: improve the sidebar of docs * website: add revision date to docs * website: add script to add version to docs frontmatter * website: add layout to display message in docs if its version is old * website: improve nav responsiveness * website: remove frontmatter form main README & rfcs * website: remove rfcs from website folder * website: add ignore condition for rfcs in .eleventy * website: remove frontmatter from lang README docs * website: remove README from website's lang docs * website: add guides menu in nav * website: following changes - add docs_dropdown.json - extend reference menu in nav - remove docs menu from nav * website: fix in docs sidebar * website: revert main docs README.md files * website: revert main docs README.md files * website: move scripts out of js that are for build * website: remove displayAt form guide docs * website: create a docs_sidebar.json & shift to that approach * update navigation * website: set navbar * website: add icons to external links * website: change the approach for docs sidebar creation * website: update docs template * website: add some strings to en.json and map them accordingly * remove icon --------- Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
91 lines
3.1 KiB
JavaScript
91 lines
3.1 KiB
JavaScript
document.addEventListener("DOMContentLoaded", function () {
|
|
const imgs = document.querySelectorAll('p img')
|
|
imgs.forEach(img => {
|
|
console.log(img.height)
|
|
img.style.height = `${img.getAttribute('height')}px`
|
|
})
|
|
|
|
const allParagraphs = document.querySelectorAll("p")
|
|
allParagraphs.forEach((paragraph) => {
|
|
if (paragraph.querySelector("img")) {
|
|
paragraph.style.display = "flex"
|
|
}
|
|
})
|
|
|
|
const docMain = document.querySelector('#doc main')
|
|
const menuBtn = document.querySelector('#doc main button.menu')
|
|
docMain.addEventListener('click', () => {
|
|
docMain.classList.remove("overlay")
|
|
document.body.classList.remove('lock-scroll')
|
|
})
|
|
|
|
menuBtn.addEventListener('click', (e) => {
|
|
docMain.classList.add("overlay")
|
|
document.body.classList.add('lock-scroll')
|
|
e.stopPropagation()
|
|
})
|
|
|
|
const headerWithIds = document.querySelectorAll('h1[id], h2[id]')
|
|
const hashList = document.querySelector('.hash-list')
|
|
|
|
headerWithIds.forEach(header => {
|
|
const id = header.getAttribute('id')
|
|
|
|
const listItem = document.createElement('li')
|
|
const anchor = document.createElement('a')
|
|
anchor.href = `#${id}`
|
|
anchor.textContent = header.textContent
|
|
listItem.appendChild(anchor)
|
|
hashList.appendChild(listItem)
|
|
|
|
const hashLink = document.createElement('a')
|
|
hashLink.href = `#${id}`
|
|
hashLink.textContent = '#'
|
|
hashLink.classList.add('hash-link')
|
|
header.appendChild(hashLink)
|
|
})
|
|
|
|
function scrollToIdWithTopOffset(id, topOffset) {
|
|
const element = document.getElementById(id)
|
|
if (element) {
|
|
const elementRect = element.getBoundingClientRect()
|
|
const absoluteElementTop = elementRect.top + window.scrollY
|
|
const scrollToPosition = absoluteElementTop - topOffset
|
|
window.scrollTo({ top: scrollToPosition, behavior: 'smooth' })
|
|
}
|
|
}
|
|
|
|
function scrollToHashWithTopOffset() {
|
|
const topOffset = window.innerWidth <= 1024 ? 104 : 66 // Adjust the top offset value as needed
|
|
const hash = window.location.hash.substring(1)
|
|
|
|
if (hash) {
|
|
setTimeout(() => {
|
|
scrollToIdWithTopOffset(hash, topOffset)
|
|
}, 0)
|
|
}
|
|
}
|
|
|
|
document.addEventListener('click', (event) => {
|
|
const target = event.target
|
|
if (target.tagName.toLowerCase() === 'a' && target.getAttribute('href').startsWith('#')) {
|
|
event.preventDefault()
|
|
const id = target.getAttribute('href').substring(1)
|
|
|
|
const topOffset = window.innerWidth <= 1024 ? 104 : 66 // Adjust the top offset value as needed
|
|
history.pushState(null, null, '#' + id)
|
|
|
|
scrollToIdWithTopOffset(id, topOffset)
|
|
}
|
|
})
|
|
|
|
window.addEventListener('load', () => {
|
|
scrollToHashWithTopOffset()
|
|
})
|
|
|
|
const backToTop = document.getElementById('back-to-top')
|
|
backToTop.addEventListener('click', function (event) {
|
|
event.preventDefault()
|
|
window.scrollTo({ top: 0, behavior: 'smooth' })
|
|
})
|
|
}) |