Browse Source

JS (rough notation)

master
David Larlet 1 month ago
parent
commit
c0a837d789
Signed by: David Larlet <david@larlet.fr> GPG Key ID: 3E2953A359E7E7BD
72 changed files with 2160 additions and 0 deletions
  1. 30
    0
      david/2024/01/01/index.html
  2. 30
    0
      david/2024/01/02/index.html
  3. 30
    0
      david/2024/01/03/index.html
  4. 30
    0
      david/2024/01/04/index.html
  5. 30
    0
      david/2024/01/05/index.html
  6. 30
    0
      david/2024/01/06/index.html
  7. 30
    0
      david/2024/01/07/index.html
  8. 30
    0
      david/2024/01/08/index.html
  9. 30
    0
      david/2024/01/09/index.html
  10. 30
    0
      david/2024/01/10/index.html
  11. 30
    0
      david/2024/01/11/index.html
  12. 30
    0
      david/2024/01/12/index.html
  13. 30
    0
      david/2024/01/13/index.html
  14. 30
    0
      david/2024/01/14/index.html
  15. 30
    0
      david/2024/01/15/index.html
  16. 30
    0
      david/2024/01/16/index.html
  17. 30
    0
      david/2024/01/17/index.html
  18. 30
    0
      david/2024/01/18/index.html
  19. 30
    0
      david/2024/01/19/index.html
  20. 30
    0
      david/2024/01/20/index.html
  21. 30
    0
      david/2024/01/21/index.html
  22. 30
    0
      david/2024/01/22/index.html
  23. 30
    0
      david/2024/01/23/index.html
  24. 30
    0
      david/2024/01/24/index.html
  25. 30
    0
      david/2024/01/25/index.html
  26. 30
    0
      david/2024/01/26/index.html
  27. 30
    0
      david/2024/01/27/index.html
  28. 30
    0
      david/2024/01/28/index.html
  29. 30
    0
      david/2024/01/29/index.html
  30. 30
    0
      david/2024/01/30/index.html
  31. 30
    0
      david/2024/01/31/index.html
  32. 30
    0
      david/2024/02/01/index.html
  33. 30
    0
      david/2024/02/02/index.html
  34. 30
    0
      david/2024/02/03/index.html
  35. 30
    0
      david/2024/02/04/index.html
  36. 30
    0
      david/2024/02/05/index.html
  37. 30
    0
      david/2024/02/06/index.html
  38. 30
    0
      david/2024/02/07/index.html
  39. 30
    0
      david/2024/02/08/index.html
  40. 30
    0
      david/2024/02/09/index.html
  41. 30
    0
      david/2024/02/10/index.html
  42. 30
    0
      david/2024/02/11/index.html
  43. 30
    0
      david/2024/02/12/index.html
  44. 30
    0
      david/2024/02/13/index.html
  45. 30
    0
      david/2024/02/14/index.html
  46. 30
    0
      david/2024/02/15/index.html
  47. 30
    0
      david/2024/02/16/index.html
  48. 30
    0
      david/2024/02/17/index.html
  49. 30
    0
      david/2024/02/18/index.html
  50. 30
    0
      david/2024/02/19/index.html
  51. 30
    0
      david/2024/02/20/index.html
  52. 30
    0
      david/2024/02/21/index.html
  53. 30
    0
      david/2024/02/22/index.html
  54. 30
    0
      david/2024/02/23/index.html
  55. 30
    0
      david/2024/02/24/index.html
  56. 30
    0
      david/2024/02/25/index.html
  57. 30
    0
      david/2024/02/26/index.html
  58. 30
    0
      david/2024/02/27/index.html
  59. 30
    0
      david/2024/02/28/index.html
  60. 30
    0
      david/2024/02/29/index.html
  61. 30
    0
      david/2024/03/01/index.html
  62. 30
    0
      david/2024/03/02/index.html
  63. 30
    0
      david/2024/03/03/index.html
  64. 30
    0
      david/2024/03/04/index.html
  65. 30
    0
      david/2024/03/05/index.html
  66. 30
    0
      david/2024/03/06/index.html
  67. 30
    0
      david/2024/03/07/index.html
  68. 30
    0
      david/2024/03/08/index.html
  69. 30
    0
      david/2024/03/09/index.html
  70. 30
    0
      david/2024/03/10/index.html
  71. 30
    0
      david/2024/03/11/index.html
  72. 30
    0
      david/templates/article_2024.html

+ 30
- 0
david/2024/01/01/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/02/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/03/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/04/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/05/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/06/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/07/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/08/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/09/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/10/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/11/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/12/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/13/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/14/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/15/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/16/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/17/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/18/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/19/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/20/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/21/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/22/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/23/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/24/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/25/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/26/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/27/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/28/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/29/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/30/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/01/31/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/01/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/02/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/03/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/04/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/05/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/06/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/07/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/08/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/09/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/10/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/11/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/12/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/13/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/14/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/15/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/16/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/17/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/18/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/19/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/20/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/21/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/22/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/23/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/24/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/25/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/26/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/27/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/28/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/02/29/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/01/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/02/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/03/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/04/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/05/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/06/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/07/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/08/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/09/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/10/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/2024/03/11/index.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>


</body> </body>
</html> </html>

+ 30
- 0
david/templates/article_2024.html View File

hideOnClick: false hideOnClick: false
}) })
</script> </script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')

const observer = new IntersectionObserver(elements => {
for (const element of elements) {
if (element.intersectionRatio < 1) return
const markElement = element.target
if (markElement.dataset.annotated) return
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
}
)
annotation.show()
// Avoid the rough notation to be applied multiple times.
markElement.dataset.annotated = true
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markElement.style.backgroundColor = 'inherit'
observer.observe(markElement)
}
</script>
{% endblock %} {% endblock %}

Loading…
Cancel
Save