 {"id":1773,"date":"2025-12-08T14:42:51","date_gmt":"2025-12-08T14:42:51","guid":{"rendered":"https:\/\/steentijdvondsten.nl\/post\/?page_id=1773"},"modified":"2026-05-22T03:42:14","modified_gmt":"2026-05-22T03:42:14","slug":"kennisbank","status":"publish","type":"page","link":"https:\/\/steentijdvondsten.nl\/post\/index.php\/kennisbank\/","title":{"rendered":"Kennisbank"},"content":{"rendered":"\n<div class=\"template-frame\">\n  <div class=\"afbeelding-kader\">\n    <div class=\"tekst-kader\">\n      <h1>Digitaal Erfgoed<\/h1>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n\/* Template container *\/\n.template-frame {\n  width: 100%;\n  max-width: 1200px; \/* pas aan naar de breedte van je template *\/\n  margin: 0 auto;\n}\n\n\/* Afbeelding container: altijd volledige afbeelding zichtbaar *\/\n.afbeelding-kader {\n  width: 100%;\n  aspect-ratio: 1200\/200; \/* vervang door verhouding van jouw afbeelding *\/\n  background-image: url('https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/cropped-sierlijn.png');\n  background-size: contain; \/* afbeelding volledig zichtbaar *\/\n  background-repeat: no-repeat;\n  background-position: center;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n\/* Tekstkader strak om de tekst *\/\n.tekst-kader {\n  display: inline-block;\n  background-color: white;\n  padding: 2mm 5mm; \/* 2mm boven\/onder, 5mm links\/rechts *\/\n  text-align: center;\n  box-sizing: border-box;\n}\n\n.tekst-kader h1 {\n  margin: 0;\n  font-size: 2em;\n  word-wrap: break-word;\n  line-height: 1.2;\n}\n<\/style>\n\n\n\n<div style=\"height:19px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"380\" height=\"380\" src=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/APAN_logo1.png\" alt=\"\" class=\"wp-image-10050\" style=\"width:125px;height:auto\" srcset=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/APAN_logo1.png 380w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/APAN_logo1-300x300.png 300w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/APAN_logo1-150x150.png 150w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/APAN_logo1-75x75.png 75w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/APAN_logo1-375x375.png 375w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/APAN_logo1-216x216.png 216w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:32px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In 2005, ter gelegenheid van haar 25-jarig jubileum, introduceerde de Aktieve Praktijk Archeologie van Nederland haar eerste website, de website had een specifieke missie: visies over diepgaande en actuele, omstreden archeologische kwesties.<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In 2025, na de verandering van het APAN bestuur, besloot het nieuwe bestuur in 2026 de oude website definitief offline te gaan halen en te vervangen door een nieuwe website. Toch blijft de voormalige website, met haar waardevolle informatie over de Nederlandse archeologie, <strong>van groot belang als cultureel digitaal erfgoed. <\/strong>Ze bevat unieke gegevens en inzichten over Steentijdvondsten die we niet mogen verliezen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Met toestemming van de auteursrechthebbende, Klaas Geerstma, is besloten het niet zover te laten komen en de inhoud van zijn werk te redden en hier online te behouden. De website belicht verschillende belangrijke gebeurtenissen en kwesties uit de Nederlandse archeologie. Een van de meest besproken en terugkerende onderwerpen is de <em>Zaak Vermaning.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deze zaak wordt op de website gepresenteerd als een rode draad die ons terugvoert naar de oorsprong van veel van de huidige discussies en ontwikkelingen in de archeologie, die we ook tegenkomen in de debatten op deze Steentijdvondsten website. Het herinnert ons aan de belangrijke lessen uit het verleden en laat zien hoe die ons vandaag de dag nog steeds be\u00efnvloeden.<\/p>\n\n\n\n<div style=\"height:34px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:47px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"template-frame\">\n  <div class=\"afbeelding-kader\">\n    <div class=\"tekst-kader\">\n      <h1>Bewerken en presenteren<\/h1>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n\/* Template container *\/\n.template-frame {\n  width: 100%;\n  max-width: 1200px; \/* pas aan naar de breedte van je template *\/\n  margin: 0 auto;\n}\n\n\/* Afbeelding container: altijd volledige afbeelding zichtbaar *\/\n.afbeelding-kader {\n  width: 100%;\n  aspect-ratio: 1200\/200; \/* vervang door verhouding van jouw afbeelding *\/\n  background-image: url('https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/cropped-sierlijn.png');\n  background-size: contain; \/* afbeelding volledig zichtbaar *\/\n  background-repeat: no-repeat;\n  background-position: center;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n\/* Tekstkader strak om de tekst *\/\n.tekst-kader {\n  display: inline-block;\n  background-color: white;\n  padding: 2mm 5mm; \/* 2mm boven\/onder, 5mm links\/rechts *\/\n  text-align: center;\n  box-sizing: border-box;\n}\n\n.tekst-kader h1 {\n  margin: 0;\n  font-size: 2em;\n  word-wrap: break-word;\n  line-height: 1.2;\n}\n<\/style>\n\n\n\n<div style=\"height:26px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Een afbeelding opslaan met cm-schaal<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"299\" height=\"160\" src=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/cm-vb-29.png\" alt=\"\" class=\"wp-image-9723\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Met deze tool kun je een afbeelding uploaden, een gedeelte selecteren en bijsnijden, en het vervolgens precies op schaal (1:1) in centimeters aanpassen. Alles downloaden met de 1 cm-blokjes onder de afbeelding.<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"nl\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Handleiding Popup<\/title>\n<style>\n  \/* Algemeen lettertype en achtergrond *\/\n  body {\n    font-family: Arial, sans-serif;\n    background-color: #ffffff;\n    margin: 0;\n    padding: 20px;\n  }\n\n  \/* Knop styling *\/\n  .open-popup-btn {\n    display: inline-block;\n    padding: 15px 30px;\n    font-size: 16px;\n    font-weight: bold;\n    color: #ffffff;\n    background-color: #856028;\n    border: none;\n    border-radius: 8px;\n    cursor: pointer;\n    transition: background-color 0.3s;\n    text-decoration: none;\n    font-family: Arial, sans-serif; \/* Arial for button *\/\n  }\n\n  .open-popup-btn:hover {\n    background-color: #caa875;\n  }\n\n  \/* Popup achtergrond *\/\n  .popup-overlay {\n    position: fixed;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    background: rgba(0,0,0,0.5);\n    display: none;\n    justify-content: center;\n    align-items: center;\n    z-index: 1000;\n  }\n\n  \/* Popup inhoud *\/\n  .popup-content {\n    background-color: #fff;\n    padding: 30px;\n    max-width: 800px;\n    width: 90%;\n    border-radius: 10px;\n    box-shadow: 0 4px 15px rgba(0,0,0,0.2);\n    position: relative;\n    max-height: 80vh;\n    overflow-y: auto;\n    font-family: Arial, sans-serif; \/* Arial for popup *\/\n  }\n\n  \/* Sluitknop *\/\n  .close-popup {\n    position: absolute;\n    top: 15px;\n    right: 15px;\n    font-size: 20px;\n    background: none;\n    border: none;\n    cursor: pointer;\n    color: #333;\n    font-family: Arial, sans-serif; \/* Arial for close button *\/\n  }\n\n  .close-popup:hover {\n    color: #007BFF;\n  }\n\n  \/* Handleiding stappen *\/\n  .steps-container h2 {\n    text-align: center;\n    color: #333;\n    margin-bottom: 20px;\n    font-family: Arial, sans-serif; \/* Arial for headings *\/\n  }\n\n  .step {\n    display: flex;\n    align-items: flex-start;\n    margin-bottom: 25px;\n  }\n\n  .step-icon {\n    font-size: 24px;\n    color: #007BFF;\n    margin-right: 15px;\n    flex-shrink: 0;\n  }\n\n  .step-content h3 {\n    margin: 0 0 5px 0;\n    font-size: 18px;\n    color: #222;\n    font-family: Arial, sans-serif;\n  }\n\n  .step-content p {\n    margin: 0;\n    color: #555;\n    line-height: 1.5;\n    font-family: Arial, sans-serif;\n  }\n\n  @media (max-width: 600px) {\n    .step {\n      flex-direction: column;\n      align-items: flex-start;\n    }\n    .step-icon {\n      margin-bottom: 5px;\n    }\n  }\n<\/style>\n<\/head>\n<body>\n\n<!-- Knop om popup te openen -->\n<button class=\"open-popup-btn\" id=\"openPopupBtn\">Bekijk Handleiding<\/button>\n\n<!-- Popup -->\n<div class=\"popup-overlay\" id=\"popupOverlay\">\n  <div class=\"popup-content\">\n    <button class=\"close-popup\" id=\"closePopupBtn\">&times;<\/button>\n    \n    <div class=\"steps-container\">\n\n      <div class=\"step\">\n        <div class=\"step-icon\">\ud83d\udcc2<\/div>\n        <div class=\"step-content\">\n          <h3>Kies een bestand<\/h3>\n          <p>Selecteer de afbeelding die je wilt bewerken.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"step\">\n        <div class=\"step-icon\">\u270f\ufe0f<\/div>\n        <div class=\"step-content\">\n          <h3>Selecteer de omtrek<\/h3>\n          <p>Kies met het selectie-gereedschap het gedeelte van de afbeelding dat je wilt behouden.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"step\">\n        <div class=\"step-icon\">\u2702\ufe0f<\/div>\n        <div class=\"step-content\">\n          <h3>Knip de selectie uit<\/h3>\n          <p>Snijd de geselecteerde omtrek uit met de knop &#8220;knip selectie&#8221; zodat alleen het gekozen gedeelte overblijft.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"step\">\n        <div class=\"step-icon\">\ud83d\udcd0<\/div>\n        <div class=\"step-content\">\n          <h3>Pas het formaat aan<\/h3>\n          <p>Versleep de afbeelding en de bijbehorende cm-schaal. De afbeelding kan naar wens in ieder formaat worden aangepast. Als de afbeelding buiten het werkblad valt, blijft deze toch volledig zichtbaar in de gedownloade versie. De cm-schaal wordt altijd automatisch gecentreerd en komt netjes onder de afbeelding te staan, zelfs als deze de afbeelding overlapt in het werkblad. In de gedownloade versie blijft alles correct gepositioneerd. De cm-schaal blijft altijd 1:1 en verandert niet mee bij formaat aanpassen.<\/p>\n        <\/div>\n      <\/div>\n\n      <div class=\"step\">\n        <div class=\"step-icon\">\ud83d\udcbe<\/div>\n        <div class=\"step-content\">\n          <h3>Opslaan<\/h3>\n          <p>Download de afbeelding met cm-schaal 1:1 als jpg afbeelding.<\/p>\n        <\/div>\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<script>\n  const openBtn = document.getElementById('openPopupBtn');\n  const closeBtn = document.getElementById('closePopupBtn');\n  const overlay = document.getElementById('popupOverlay');\n\n  openBtn.addEventListener('click', () => {\n    overlay.style.display = 'flex';\n  });\n\n  closeBtn.addEventListener('click', () => {\n    overlay.style.display = 'none';\n  });\n\n  \/\/ Sluit popup als gebruiker buiten klikt\n  overlay.addEventListener('click', (e) => {\n    if(e.target === overlay) {\n      overlay.style.display = 'none';\n    }\n  });\n<\/script>\n\n<\/body>\n<\/html>\n\n\n        <style>\n        .ca-container { max-width:900px; margin:20px auto; padding:20px; background:#f9f9f9; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.1); font-family:Arial,sans-serif; }\n        .ca-header { text-align:center; margin-bottom:20px; }\n        #mainCanvas { display:block; margin:0 auto 15px auto; border:1px solid #ccc; background:#fff; touch-action:none; width:100%; height:auto; max-width:900px; }\n        .ca-controls { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:20px; align-items:center; }\n        .ca-controls input[type=\"number\"], .ca-controls button { font-size:14px; }\n        .ca-file-input { text-align:center; margin-bottom:15px; }\n        <\/style>\n\n        <div class=\"ca-container\">\n            <div class=\"ca-header\">\n                <h2>Centimeter schaal 1:1<\/h2>\n                <p><\/p>\n            <\/div>\n\n            <div class=\"ca-file-input\">\n                <input type=\"file\" id=\"imageUpload\" accept=\"image\/*\">\n            <\/div>\n\n            <canvas id=\"mainCanvas\" width=\"800\" height=\"600\"><\/canvas>\n\n            <div class=\"ca-controls\">\n                Formaat uitsnede (mm): Breedte \n                <input type=\"number\" id=\"widthMM\" min=\"1\"> x Hoogte \n                <input type=\"number\" id=\"heightMM\" min=\"1\">\n            <\/div>\n\n            <div class=\"ca-controls\">\n                <button id=\"cutBtn\">Knip selectie<\/button>\n                <button id=\"resetBtn\">Reset<\/button>\n                <button id=\"downloadBtn\">Download afbeelding<\/button>\n            <\/div>\n\n            <div class=\"ca-controls\">\n                <button id=\"rotateBtn\">Draai 90\u00b0<\/button>\n            <\/div>\n        <\/div>\n\n        <script>\n        const mainCanvas = document.getElementById('mainCanvas');\n        const ctx = mainCanvas.getContext('2d');\n\n        let originalImage = null, displayedImage = null;\n        let cutWidth = 0, cutHeight = 0;\n        let imageX = 0, imageY = 0;\n        const blockSize = 37, numBlocks = 7;\n        const blockGapMM = 5;\n        const borderMM = 10;\n        const pixelsPerMM = blockSize \/ 10;\n\n        let blockX = 50, blockY = 50;\n        let selectStartX = 0, selectStartY = 0, selectWidth = 0, selectHeight = 0;\n        let isSelecting = false, isDraggingImage = false, isDraggingBlock = false;\n        let dragOffsetX = 0, dragOffsetY = 0;\n        let rotation = 0;\n        let canDragImage = false;\n\n        function drawMain() {\n            ctx.clearRect(0, 0, mainCanvas.width, mainCanvas.height);\n\n            if (displayedImage) {\n                ctx.save();\n                ctx.translate(imageX + cutWidth \/ 2, imageY + cutHeight \/ 2);\n                ctx.rotate(rotation * Math.PI \/ 2);\n                ctx.drawImage(displayedImage, -cutWidth \/ 2, -cutHeight \/ 2, cutWidth, cutHeight);\n                ctx.restore();\n            }\n\n            if (displayedImage) {\n                ctx.strokeStyle = \"black\"; ctx.lineWidth = 2;\n                ctx.strokeRect(blockX, blockY, blockSize * numBlocks, 20);\n                for (let i = 0; i < numBlocks; i++) {\n                    ctx.fillStyle = (i % 2 === 0) ? \"black\" : \"white\";\n                    ctx.fillRect(blockX + i * blockSize, blockY, blockSize, 20);\n                }\n                ctx.fillStyle = \"black\"; ctx.font = \"12px Arial\";\n                ctx.fillText(\"1cm\", blockX, blockY + 35);\n            }\n\n            if (isSelecting) {\n                ctx.strokeStyle = 'red'; ctx.lineWidth = 2;\n                ctx.setLineDash([6, 4]);\n                ctx.strokeRect(selectStartX, selectStartY, selectWidth, selectHeight);\n                ctx.setLineDash([]);\n            }\n        }\n\n        function getPos(e) {\n            const rect = mainCanvas.getBoundingClientRect();\n            let x = e.touches ? e.touches[0].clientX : e.clientX;\n            let y = e.touches ? e.touches[0].clientY : e.clientY;\n            const scaleX = mainCanvas.width \/ rect.width;\n            const scaleY = mainCanvas.height \/ rect.height;\n            return { x: (x - rect.left) * scaleX, y: (y - rect.top) * scaleY };\n        }\n\n        function mainDown(e) {\n            const pos = getPos(e);\n            if (canDragImage && displayedImage && pos.x >= imageX && pos.x <= imageX + cutWidth && pos.y >= imageY && pos.y <= imageY + cutHeight) {\n                isDraggingImage = true;\n                dragOffsetX = pos.x - imageX;\n                dragOffsetY = pos.y - imageY;\n            } else if (displayedImage && pos.x >= blockX && pos.x <= blockX + blockSize * numBlocks && pos.y >= blockY && pos.y <= blockY + 20) {\n                isDraggingBlock = true;\n                dragOffsetX = pos.x - blockX;\n                dragOffsetY = pos.y - blockY;\n            } else {\n                selectStartX = pos.x;\n                selectStartY = pos.y;\n                selectWidth = 0;\n                selectHeight = 0;\n                isSelecting = true;\n            }\n            drawMain();\n        }\n\n        function mainMove(e) {\n            const pos = getPos(e);\n            if (isDraggingImage) {\n                imageX = pos.x - dragOffsetX;\n                imageY = pos.y - dragOffsetY;\n            } else if (isDraggingBlock) {\n                blockX = Math.min(Math.max(pos.x - dragOffsetX, imageX), imageX + cutWidth - blockSize * numBlocks);\n                blockY = Math.min(Math.max(pos.y - dragOffsetY, imageY), imageY + cutHeight - 20);\n            } else if (isSelecting) {\n                selectWidth = pos.x - selectStartX;\n                selectHeight = pos.y - selectStartY;\n            }\n            drawMain();\n        }\n\n        function mainUp() {\n            isSelecting = false;\n            isDraggingImage = false;\n            isDraggingBlock = false;\n            drawMain();\n        }\n\n        mainCanvas.addEventListener('mousedown', mainDown);\n        mainCanvas.addEventListener('mousemove', mainMove);\n        mainCanvas.addEventListener('mouseup', mainUp);\n        mainCanvas.addEventListener('mouseout', mainUp);\n        mainCanvas.addEventListener('touchstart', e => { e.preventDefault(); mainDown(e); }, { passive: false });\n        mainCanvas.addEventListener('touchmove', e => { e.preventDefault(); mainMove(e); }, { passive: false });\n        mainCanvas.addEventListener('touchend', e => { e.preventDefault(); mainUp(); }, { passive: false });\n\n        document.getElementById('imageUpload').addEventListener('change', e => {\n            const reader = new FileReader();\n            reader.onload = ev => {\n                const img = new Image();\n                img.onload = () => {\n                    originalImage = img;\n                    displayedImage = img;\n                    let scale = Math.min(mainCanvas.width \/ img.width, mainCanvas.height \/ img.height);\n                    cutWidth = img.width * scale;\n                    cutHeight = img.height * scale;\n                    imageX = (mainCanvas.width - cutWidth) \/ 2;\n                    imageY = (mainCanvas.height - cutHeight) \/ 2;\n                    document.getElementById('widthMM').value = (cutWidth \/ pixelsPerMM).toFixed(1);\n                    document.getElementById('heightMM').value = (cutHeight \/ pixelsPerMM).toFixed(1);\n                    drawMain();\n                };\n                img.src = ev.target.result;\n            };\n            reader.readAsDataURL(e.target.files[0]);\n        });\n\n        document.getElementById('cutBtn').addEventListener('click', () => {\n            if (!originalImage) return alert('Selecteer eerst een gebied');\n            const tempCanvas = document.createElement('canvas');\n            tempCanvas.width = Math.abs(selectWidth);\n            tempCanvas.height = Math.abs(selectHeight);\n            const tCtx = tempCanvas.getContext('2d');\n\n            const scaleX = originalImage.width \/ cutWidth;\n            const scaleY = originalImage.height \/ cutHeight;\n\n            const srcX = (selectStartX - imageX) * scaleX;\n            const srcY = (selectStartY - imageY) * scaleY;\n            const srcW = selectWidth * scaleX;\n            const srcH = selectHeight * scaleY;\n\n            tCtx.drawImage(originalImage, srcX, srcY, srcW, srcH, 0, 0, Math.abs(selectWidth), Math.abs(selectHeight));\n\n            displayedImage = new Image();\n            displayedImage.onload = () => {\n                cutWidth = Math.abs(selectWidth);\n                cutHeight = Math.abs(selectHeight);\n                imageX = (mainCanvas.width - cutWidth) \/ 2;\n                imageY = (mainCanvas.height - cutHeight) \/ 2;\n                document.getElementById('widthMM').value = (cutWidth \/ pixelsPerMM).toFixed(1);\n                document.getElementById('heightMM').value = (cutHeight \/ pixelsPerMM).toFixed(1);\n                canDragImage = true;\n                drawMain();\n            };\n            displayedImage.src = tempCanvas.toDataURL();\n        });\n\n        document.getElementById('widthMM').addEventListener('input', () => {\n            if (!displayedImage) return;\n            cutWidth = parseFloat(widthMM.value) * pixelsPerMM;\n            drawMain();\n        });\n\n        document.getElementById('heightMM').addEventListener('input', () => {\n            if (!displayedImage) return;\n            cutHeight = parseFloat(heightMM.value) * pixelsPerMM;\n            drawMain();\n        });\n\n        document.getElementById('resetBtn').addEventListener('click', () => {\n            if (!originalImage) return;\n            displayedImage = originalImage;\n            let scale = Math.min(mainCanvas.width \/ originalImage.width, mainCanvas.height \/ originalImage.height);\n            cutWidth = originalImage.width * scale;\n            cutHeight = originalImage.height * scale;\n            imageX = (mainCanvas.width - cutWidth) \/ 2;\n            imageY = (mainCanvas.height - cutHeight) \/ 2;\n            blockX = imageX;\n            blockY = imageY;\n            canDragImage = false;\n            widthMM.value = (cutWidth \/ pixelsPerMM).toFixed(1);\n            heightMM.value = (cutHeight \/ pixelsPerMM).toFixed(1);\n            drawMain();\n        });\n\n        document.getElementById('rotateBtn').addEventListener('click', () => {\n            rotation = (rotation + 1) % 4;\n            drawMain();\n        });\n\n        \/\/ \u2705 FIXED DOWNLOAD\n        document.getElementById('downloadBtn').addEventListener('click', () => {\n            if (!displayedImage) return;\n\n            const marginPixels = borderMM * pixelsPerMM;\n            const blockGapPixels = blockGapMM * pixelsPerMM;\n            const blockHeight = 20;\n\n            let rotatedWidth = (rotation % 2 === 0) ? cutWidth : cutHeight;\n            let rotatedHeight = (rotation % 2 === 0) ? cutHeight : cutWidth;\n\n            const dlCanvas = document.createElement('canvas');\n            dlCanvas.width = rotatedWidth + 2 * marginPixels;\n            dlCanvas.height = rotatedHeight + 2 * marginPixels + blockGapPixels + blockHeight;\n\n            const dCtx = dlCanvas.getContext('2d');\n\n            dCtx.fillStyle = 'white';\n            dCtx.fillRect(0, 0, dlCanvas.width, dlCanvas.height);\n\n            dCtx.save();\n            dCtx.translate(marginPixels + rotatedWidth \/ 2, marginPixels + rotatedHeight \/ 2);\n            dCtx.rotate(rotation * Math.PI \/ 2);\n\n            \/\/ \ud83d\udd25 FIX: altijd originele verhouding gebruiken\n            dCtx.drawImage(displayedImage, -cutWidth \/ 2, -cutHeight \/ 2, cutWidth, cutHeight);\n\n            dCtx.restore();\n\n            const blockYpos = marginPixels + rotatedHeight + blockGapPixels;\n            const blockXpos = marginPixels + (rotatedWidth - blockSize * numBlocks) \/ 2;\n\n            dCtx.strokeStyle = \"black\";\n            dCtx.lineWidth = 2;\n            dCtx.strokeRect(blockXpos, blockYpos, blockSize * numBlocks, blockHeight);\n\n            for (let i = 0; i < numBlocks; i++) {\n                dCtx.fillStyle = (i % 2 === 0) ? \"black\" : \"white\";\n                dCtx.fillRect(blockXpos + i * blockSize, blockYpos, blockSize, blockHeight);\n            }\n\n            dCtx.fillStyle = \"black\";\n            dCtx.font = \"12px Arial\";\n            dCtx.fillText(\"1cm\", blockXpos, blockYpos + 35);\n\n            const link = document.createElement('a');\n            link.href = dlCanvas.toDataURL();\n            link.download = 'afbeelding_met_blokjes.png';\n            link.click();\n        });\n\n        drawMain();\n        <\/script>\n\n\n\n\n<div style=\"height:119px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"template-frame\">\n  <div class=\"afbeelding-kader\">\n    <div class=\"tekst-kader\">\n      <h1>Veldnotities<\/h1>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n\/* Template container *\/\n.template-frame {\n  width: 100%;\n  max-width: 1200px; \/* pas aan naar de breedte van je template *\/\n  margin: 0 auto;\n}\n\n\/* Afbeelding container: altijd volledige afbeelding zichtbaar *\/\n.afbeelding-kader {\n  width: 100%;\n  aspect-ratio: 1200\/200; \/* vervang door verhouding van jouw afbeelding *\/\n  background-image: url('https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/cropped-sierlijn.png');\n  background-size: contain; \/* afbeelding volledig zichtbaar *\/\n  background-repeat: no-repeat;\n  background-position: center;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n\/* Tekstkader strak om de tekst *\/\n.tekst-kader {\n  display: inline-block;\n  background-color: white;\n  padding: 2mm 5mm; \/* 2mm boven\/onder, 5mm links\/rechts *\/\n  text-align: center;\n  box-sizing: border-box;\n}\n\n.tekst-kader h1 {\n  margin: 0;\n  font-size: 2em;\n  word-wrap: break-word;\n  line-height: 1.2;\n}\n<\/style>\n\n\n\n<div style=\"height:13px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" style=\"font-size:24px\">Vondsten registreren en presenteren naar een eigen priv\u00e9 PDF-opmaak<\/h2>\n\n\n\n<div style=\"height:13px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!DOCTYPE html>\n<html lang=\"nl\">\n<head>\n<meta charset=\"UTF-8\">\n<title>Privacy info popup<\/title>\n\n<style>\n\/* Container met maximale breedte *\/\n.privacyInfo__container {\n    max-width: 20cm;          \/* maximaal 20 cm *\/\n    display: flex;\n    align-items: center;\n    gap: 8px;                 \/* ruimte tussen tekst en rondje *\/\n    position: relative;\n}\n\n\/* Tekst *\/\n.privacyInfo__text {\n    font-size: 14px;\n    line-height: 1.4;\n}\n\n\/* Info-icoon *\/\n.privacyInfo__icon {\n    width: 22px;\n    height: 22px;\n    min-width: 22px;\n    border-radius: 50%;\n    background-color: #c8984e; \/* donker oranje *\/\n    color: #ffffff;\n    text-align: center;\n    line-height: 22px;\n    font-weight: bold;\n    cursor: pointer;\n    user-select: none;\n    font-size: 14px;\n    position: relative;\n}\n\n\/* Popup *\/\n.privacyInfo__popup {\n    position: absolute;\n    bottom: 130%;\n    left: 50%;\n    transform: translateX(-50%);\n    background-color: #2e2e2e;\n    color: #ffffff;\n    padding: 10px 12px;\n    border-radius: 6px;\n    width: 260px;\n    font-size: 13px;\n    line-height: 1.4;\n    display: none;\n    box-sizing: border-box;\n    z-index: 1000;\n}\n\n\/* Pijltje *\/\n.privacyInfo__popup::after {\n    content: \"\";\n    position: absolute;\n    top: 100%;\n    left: 50%;\n    transform: translateX(-50%);\n    border-width: 6px;\n    border-style: solid;\n    border-color: #2e2e2e transparent transparent transparent;\n}\n\n\/* Zichtbaar *\/\n.privacyInfo__icon.privacyInfo__show .privacyInfo__popup {\n    display: block;\n}\n<\/style>\n<\/head>\n<body>\n\n\n\n<!-- PLAATS DIT BLOK WAAR JE HET WILT -->\n<div class=\"privacyInfo__container\" data-privacy-info>\n    <div class=\"privacyInfo__text\">\n         Je privacy is gewaarborgd.\n    <\/div>\n\n    <div class=\"privacyInfo__icon\">\n        i\n        <div class=\"privacyInfo__popup\">\n          Alle gegevens die je invult in het registratieformulier zijn priv\u00e9. Niemand, ook niet steentijdvondsten.nl, kan deze gegevens inzien. Wij slaan geen informatie op en hebben geen toegang tot de door jou ingevulde gegevens. Alles wordt tijdelijk opgeslagen in je eigen browser. Je kunt alle ingevulde gegevens opslaan als een PDF-document om te bewaren. Let op: zodra je de pagina verlaat, worden de ingevulde gegevens permanent verwijderd.\n            \n            Je privacy is gewaarborgd.\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n(function () {\n    'use strict';\n\n    var containers = document.querySelectorAll('[data-privacy-info]');\n\n    function positionPopup(icon) {\n        var popup = icon.querySelector('.privacyInfo__popup');\n\n        popup.style.left = '50%';\n        popup.style.right = 'auto';\n        popup.style.transform = 'translateX(-50%)';\n\n        var rect = popup.getBoundingClientRect();\n        var margin = 10;\n\n        if (rect.left < margin) {\n            popup.style.left = '0';\n            popup.style.transform = 'translateX(0)';\n        }\n\n        if (rect.right > window.innerWidth - margin) {\n            popup.style.left = 'auto';\n            popup.style.right = '0';\n            popup.style.transform = 'translateX(0)';\n        }\n    }\n\n    containers.forEach(function (container) {\n        var icon = container.querySelector('.privacyInfo__icon');\n\n        function show() {\n            icon.classList.add('privacyInfo__show');\n            positionPopup(icon);\n        }\n\n        function hide() {\n            icon.classList.remove('privacyInfo__show');\n        }\n\n        \/\/ Desktop\n        icon.addEventListener('mouseenter', show);\n        icon.addEventListener('mouseleave', hide);\n\n        \/\/ Touch\n        icon.addEventListener('click', function (e) {\n            e.stopPropagation();\n            icon.classList.toggle('privacyInfo__show');\n            if (icon.classList.contains('privacyInfo__show')) {\n                positionPopup(icon);\n            }\n        });\n    });\n\n    document.addEventListener('click', function () {\n        containers.forEach(function (container) {\n            var icon = container.querySelector('.privacyInfo__icon');\n            icon.classList.remove('privacyInfo__show');\n        });\n    });\n\n})();\n<\/script>\n\n<\/body>\n<\/html>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"nl\">\n<head>\n<meta charset=\"UTF-8\">\n<title>Bodemhorizonten Popup<\/title>\n\n<style>\n  body {\n    font-family: Arial, sans-serif;\n    margin: 0;\n    padding: 20px;\n  }\n\n  button {\n    padding: 10px 15px;\n    font-size: 16px;\n    cursor: pointer;\n  }\n\n  \/* Overlay (altijd bovenaan) *\/\n  .overlay {\n    display: none;\n    position: fixed; \/* belangrijk *\/\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    background: rgba(0,0,0,0.6);\n    z-index: 9999; \/* hoog genoeg *\/\n  }\n\n  \/* Popup *\/\n  .popup {\n    position: fixed; \/* ook fixed voor zekerheid *\/\n    top: 50%;\n    left: 50%;\n    transform: translate(-50%, -50%);\n    background: #fff;\n    padding: 20px;\n    width: 60%;\n    max-width: 700px;\n    max-height: 80%;\n    overflow-y: auto;\n    border-radius: 10px;\n    box-shadow: 0 5px 20px rgba(0,0,0,0.3);\n    z-index: 10000; \/* nog hoger *\/\n  }\n\n  .close-btn {\n    float: right;\n    cursor: pointer;\n    font-size: 22px;\n    font-weight: bold;\n  }\n\n  h2 {\n    margin-top: 0;\n  }\n<\/style>\n<\/head>\n\n<body>\n\n<button onclick=\"openPopup()\">Bodem<\/button>\n\n<!-- Popup overlay (direct onder body!) -->\n<div class=\"overlay\" id=\"overlay\">\n  <div class=\"popup\">\n    <span class=\"close-btn\" onclick=\"closePopup()\">\u00d7<\/span>\n\n    <h2>Bodemhorizonten<\/h2>\n\n    <p>\n      De bodemhorizonten kunnen per land en regio sterk vari\u00ebren, afhankelijk van verschillende factoren zoals klimaat, bodemtype, vegetatie en menselijke activiteit.\n    <\/p>\n\n    <ul>\n      <li><strong>Humuslaag (O-horizont):<\/strong> Organisch materiaal zoals plantenresten en micro-organismen.<\/li>\n      <li><strong>A-horizont (plaggendek):<\/strong> Donkere bovenste minerale laag.<\/li>\n      <li><strong>E-horizont (eluviatiehorizont):<\/strong> Uitspoeling van mineralen en organisch materiaal.<\/li>\n      <li><strong>B-horizont (illuviatiehorizont):<\/strong> Ophoping van klei, ijzer of humus.<\/li>\n      <li><strong>Dekzandlaag:<\/strong> Door wind afgezet zand uit de ijstijd.<\/li>\n      <li><strong>Keilzandlaag:<\/strong> Compacte laag gevormd door gletsjers.<\/li>\n      <li><strong>C-horizont (ouderdomsbodem):<\/strong> Onderliggende oude bodemlaag.<\/li>\n    <\/ul>\n\n    <p><em>\n      Let op: de diepte, samenstelling en volgorde van deze horizonten kunnen sterk vari\u00ebren afhankelijk van de lokale omstandigheden.\n    <\/em><\/p>\n\n  <\/div>\n<\/div>\n\n<script>\nfunction openPopup() {\n  document.getElementById(\"overlay\").style.display = \"block\";\n}\n\nfunction closePopup() {\n  document.getElementById(\"overlay\").style.display = \"none\";\n}\n\n\/* Sluit popup als je buiten klikt *\/\nwindow.onclick = function(event) {\n  const overlay = document.getElementById(\"overlay\");\n  if (event.target === overlay) {\n    closePopup();\n  }\n}\n<\/script>\n\n<\/body>\n<\/html>\n\n\n\n<style>\n  \/* De wrapper voor de pagina-inhoud *\/\n  .page-wrapper {\n      display: flex;                  \/* Flexbox gebruiken om de layout te controleren *\/\n      justify-content: center;        \/* Horizontaal centreren van de inhoud *\/\n      padding: 20px;                  \/* Padding voor wat ruimte aan de zijkanten *\/\n  }\n\n  \/* De container voor de inhoud zonder zijbalken *\/\n  .content-container {\n      display: flex;                  \/* Flexbox gebruiken om de content in de container te regelen *\/\n      flex-direction: column;         \/* Inhoud verticaal stapelen *\/\n      justify-content: flex-start;    \/* Begin de inhoud vanaf de bovenkant *\/\n      width: 100%;                    \/* Zorgt ervoor dat de inhoud 100% van de breedte gebruikt *\/\n      max-width: 1000px;              \/* Max breedte van de container *\/\n      margin-left: auto;              \/* Center de container *\/\n      margin-right: auto;             \/* Center de container *\/\n  }\n\n  \/* Stijl voor de individuele inhoud *\/\n  .shortcode-container {\n      background-color: #FAFAFA;      \/* Achtergrondkleur voor de inhoud *\/\n      padding: 20px;                  \/* Padding voor wat ruimte binnen de containers *\/\n      border: 2px solid #d3c3b4;      \/* Zachte randkleur *\/\n      border-radius: 10px;            \/* Afgeronde hoeken *\/\n      margin-bottom: 20px;            \/* Ruimte tussen de verschillende containers *\/\n\n      \/* Flexbox voor centreren van de inhoud binnen de container *\/\n      display: flex;\n      justify-content: center;        \/* Horizontaal centreren *\/\n      align-items: center;            \/* Verticaal centreren *\/\n      text-align: center;             \/* Zorgt ervoor dat de tekst ook gecentreerd wordt *\/\n  }\n\n  \/* Voor mobiele weergave, de inhoud krijgt 100% breedte *\/\n  @media screen and (max-width: 768px) {\n      .content-container {\n          width: 100%;                \/* Zorgt ervoor dat de inhoud 100% breedte gebruikt op mobiele apparaten *\/\n      }\n  }\n<\/style>\n\n<!-- De wrapper voor de inhoud, die de inhoud centreren zonder de zijbalken te be\u00efnvloeden -->\n<div class=\"page-wrapper\">\n    <!-- De container voor de inhoud -->\n    <div class=\"content-container\">\n        <div class=\"shortcode-container\">\n            \n<div class=\"avr-wrapper\">\n\n<h2><\/h2>\n\n<div class=\"avr-grid\">\n\n<div>\n<label>Datum<\/label>\n<input id=\"datum\" type=\"date\">\n<\/div>\n\n<div>\n<label>Project<\/label>\n<input id=\"project\">\n<\/div>\n\n<div>\n<label>Registrator<\/label>\n<input id=\"registrator\">\n<\/div>\n\n<div>\n<label>Sitecode<\/label>\n<input id=\"sitecode\" readonly>\n<\/div>\n\n<div>\n<label>Artefacttype<\/label>\n<select id=\"artefacttype\">\n<option>Paleolithicum \/ Oude steentijd tot 8800 vC<\/option>\n<option>Paleolithicum vroeg tot 300.000 vC<\/option>\n<option>Paleolithicum midden 300.000 - 35.000 vC<\/option>\n<option>Paleolithicum laat 35.000 C14 - 8800 vC<\/option>\n<option>Paleolithicum laat A 35.000 - 18.000 vC<\/option>\n<option>Paleolithicum laat B 18.000 C14 - 8800 vC<\/option>\n<option>Mesolithicum \/ Midden-steentijd 8800 - 4900 vC<\/option>\n<option>Mesolithicum vroeg 8800 - 7100 vC<\/option>\n<option>Mesolithicum midden 7100 - 6450 vC<\/option>\n<option>Mesolithicum laat 6450 - 4900 vC<\/option>\n<option>Neolithicum \/ Jonge steentijd 5300 - 2000 vC<\/option>\n<option>Neolithicum vroeg 5300 - 4200 vC<\/option>\n<option>Neolithicum vroeg A 5300 - 4900 vC<\/option>\n<option>Neolithicum Vroeg B 4900 - 4200 vC<\/option>\n<option>Neolithicum Midden 4200 - 2850 vC<\/option>\n<option>Neolithicum Midden A 4200 - 3400 vC<\/option>\n<option>Neolithicum Midden B 3400 - 2850 vC<\/option>\n<option>Neolithicum Laat 2850 - 2000 vC<\/option>\n<option>Neolithicum Laat A 2850 - 2450 vC<\/option>\n<option>Neolithicum Laat B 2450 - 2000 vC<\/option>\n<option>Bronstijd 2000 - 800 vC<\/option>\n<option>Bronstijd Vroeg 2000 - 1800 vC<\/option>\n<option>Bronstijd Midden 1800 - 1100 vC<\/option>\n<option>Bronstijd Midden A 1800 - 1500 vC<\/option>\n<option>Bronstijd Midden B 1500 - 1100 vC<\/option>\n<option>Bronstijd Laat 1100 - 800 vC<\/option>\n<\/select>\n<\/div>\n\n<div>\n<label>Bodem<\/label>\n<select id=\"bodem\">\n<option>Humuslaag O-horizont<\/option>\n<option>A-horizont plaggendek<\/option>\n<option>E-horizont eluviatiehorizont<\/option>\n<option>B-horizont illuviatiehorizont<\/option>\n<option>Dekzandlaag<\/option>\n<option>Keizandlaag<\/option>\n<option>C-horizont ouderdomsbodem<\/option>\n<option>Zie notities<\/option>\n<\/select>\n<\/div>\n\n<div class=\"avr-grid-full\">\n<label>Veldnotities<\/label>\n<textarea id=\"veldnotities\"><\/textarea>\n<\/div>\n\n<div>\n<label>Foto<\/label>\n<input type=\"file\" id=\"fotoInput\">\n<\/div>\n\n<div>\n<label>Diepte<\/label>\n<input id=\"diepte\">\n<\/div>\n\n<\/div>\n\n\n<div class=\"avr-coords\">\n\n<div>\n<label>Latitude<\/label>\n<input id=\"lat\" readonly>\n<\/div>\n\n<div>\n<label>Longitude<\/label>\n<input id=\"lon\" readonly>\n<\/div>\n\n<div>\n<label>Plaats<\/label>\n<input id=\"plaats\" readonly>\n<\/div>\n\n<\/div>\n\n\n<div id=\"map\"><\/div>\n\n\n<div class=\"avr-buttons\">\n\n<button id=\"gpsBtn\">\ud83d\udccd GPS locatie<\/button>\n<button id=\"addLocation\">Locatie toevoegen<\/button>\n<button id=\"exportPDF\">Export PDF<\/button>\n\n<\/div>\n\n\n<table>\n\n<thead>\n<tr>\n<th>#<\/th>\n<th>Site<\/th>\n<th>Artefact<\/th>\n<th>Lat<\/th>\n<th>Lon<\/th>\n<th>Plaats<\/th>\n<th>Actie<\/th>\n<\/tr>\n<\/thead>\n\n<tbody id=\"locTable\"><\/tbody>\n\n<\/table>\n\n<\/div>\n\n\n        <\/div>\n\n        \n    <\/div>\n<\/div>\n\n\n\n<div style=\"height:47px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"template-frame\">\n  <div class=\"afbeelding-kader\">\n    <div class=\"tekst-kader\">\n      <h1>Tijdschriften<\/h1>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n\/* Template container *\/\n.template-frame {\n  width: 100%;\n  max-width: 1200px; \/* pas aan naar de breedte van je template *\/\n  margin: 0 auto;\n}\n\n\/* Afbeelding container: altijd volledige afbeelding zichtbaar *\/\n.afbeelding-kader {\n  width: 100%;\n  aspect-ratio: 1200\/200; \/* vervang door verhouding van jouw afbeelding *\/\n  background-image: url('https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/cropped-sierlijn.png');\n  background-size: contain; \/* afbeelding volledig zichtbaar *\/\n  background-repeat: no-repeat;\n  background-position: center;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n\/* Tekstkader strak om de tekst *\/\n.tekst-kader {\n  display: inline-block;\n  background-color: white;\n  padding: 2mm 5mm; \/* 2mm boven\/onder, 5mm links\/rechts *\/\n  text-align: center;\n  box-sizing: border-box;\n}\n\n.tekst-kader h1 {\n  margin: 0;\n  font-size: 2em;\n  word-wrap: break-word;\n  line-height: 1.2;\n}\n<\/style>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:47% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"709\" src=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/03\/tijdschriften-1024x709.png\" alt=\"\" class=\"wp-image-7463 size-full\"\/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-text-align-left wp-block-paragraph\">De amateurarcheoloog Ad Wouters publiceerde samen met Caspar Franssen tussen 1977 en 1987 archeologie artikelen in hun vakblad <strong>Archaeologische Berichten.<\/strong> Uitgave 1 t\/m 18 zijn hier: <a href=\"https:\/\/tjerkvermaning.nl\/Ad-Wouters\/Archeologische-berichten\/\" target=\"_blank\" rel=\"noreferrer noopener\">downloaden <\/a><\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\" style=\"font-size:16px\"><strong>De APAN\/Extern <\/strong>is een vakblad magazine, dat jaarlijks aan de leden van de Vereniging van Actieve Praktijk Archeologie Nederland wordt verstrekt. Publicaties 1 t\/m 20 zijn hier: <a href=\"https:\/\/tjerkvermaning.nl\/APANExtern-2025\/APANExtern\/\" target=\"_blank\" rel=\"noreferrer noopener\">downloaden <\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>De illustratie van lithische artefacten:<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">een gids voor het tekenen van stenen gereedschappen. <a href=\"https:\/\/www.archaeologists.net\/sites\/default\/files\/2025-04\/flint-paper-digital.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.archaeologists.net\/sites\/default\/files\/2025-04\/flint-paper-digital.pdf<\/a><\/p>\n<\/div><\/div>\n\n\n\n<div style=\"height:113px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"template-frame\">\n  <div class=\"afbeelding-kader\">\n    <div class=\"tekst-kader\">\n      <h1>Puzzel<\/h1>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n\/* Template container *\/\n.template-frame {\n  width: 100%;\n  max-width: 1200px; \/* pas aan naar de breedte van je template *\/\n  margin: 0 auto;\n}\n\n\/* Afbeelding container: altijd volledige afbeelding zichtbaar *\/\n.afbeelding-kader {\n  width: 100%;\n  aspect-ratio: 1200\/200; \/* vervang door verhouding van jouw afbeelding *\/\n  background-image: url('https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/cropped-sierlijn.png');\n  background-size: contain; \/* afbeelding volledig zichtbaar *\/\n  background-repeat: no-repeat;\n  background-position: center;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n\/* Tekstkader strak om de tekst *\/\n.tekst-kader {\n  display: inline-block;\n  background-color: white;\n  padding: 2mm 5mm; \/* 2mm boven\/onder, 5mm links\/rechts *\/\n  text-align: center;\n  box-sizing: border-box;\n}\n\n.tekst-kader h1 {\n  margin: 0;\n  font-size: 2em;\n  word-wrap: break-word;\n  line-height: 1.2;\n}\n<\/style>\n\n\n\n<div style=\"height:68px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"912\" data-id=\"10507\" src=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/GRG1-1024x912.png\" alt=\"\" class=\"wp-image-10507\" srcset=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/GRG1-1024x912.png 1024w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/GRG1-300x267.png 300w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/GRG1-768x684.png 768w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/GRG1.png 1096w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"673\" data-id=\"10640\" src=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/rotstekening-1024x673.png\" alt=\"\" class=\"wp-image-10640\" srcset=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/rotstekening-1024x673.png 1024w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/rotstekening-300x197.png 300w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/rotstekening-768x505.png 768w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/rotstekening-1140x750.png 1140w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/rotstekening-500x330.png 500w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/rotstekening.png 1265w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"678\" height=\"468\" data-id=\"10710\" src=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/kunstenaar_draaid.gif\" alt=\"\" class=\"wp-image-10710\"\/><\/figure>\n<\/figure>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:51% auto\"><figure class=\"wp-block-media-text__media\"><a href=\"https:\/\/steentijdvondsten.nl\/post\/index.php\/puzzel\/\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"565\" src=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/1.achtergrong_geen_vuur-1024x565.png\" alt=\"\" class=\"wp-image-10293 size-full\" srcset=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/1.achtergrong_geen_vuur-1024x565.png 1024w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/1.achtergrong_geen_vuur-300x166.png 300w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/1.achtergrong_geen_vuur-768x424.png 768w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/1.achtergrong_geen_vuur-1140x629.png 1140w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/05\/1.achtergrong_geen_vuur.png 1392w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"wp-block-paragraph\">Maak de puzzel opdrachten in de grot van Lascaux, gelegen in de Dordogne in Frankrijk. De grot werd ontdekt in 1940 en bevat&nbsp;<strong>meer dan 600 rotstekeningen<\/strong>&nbsp;die teruggaan tot ongeveer&nbsp;<strong>17.000 jaar geleden<\/strong>, in het&nbsp;<strong>late Paleolithicum<\/strong>. De afbeeldingen zijn vooral van dieren.<\/p>\n\n\n\n<div style=\"height:68px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<!DOCTYPE html>\n<html lang=\"nl\">\n<head>\n    <meta charset=\"UTF-8\">\n    <title>Button Voorbeeld<\/title>\n    <style>\n        \/* Container om de knop te centreren *\/\n        .button-container {\n            display: flex;                \/* Flexbox *\/\n            justify-content: center;      \/* Horizontaal centreren *\/\n            align-items: center;          \/* Verticaal centreren *\/\n            height: 2vh;                \/* Hele hoogte van het scherm *\/\n        }\n\n        \/* Specifieke styling voor deze link als knop *\/\n        a.custom-button {\n            background-color: #856028 !important; \/* Knopkleur *\/\n            color: white !important;              \/* Tekstkleur wit *\/\n            padding: 10px 20px !important;        \/* Ruimte rondom de tekst *\/\n            text-decoration: none !important;     \/* Geen underline *\/\n            border: none !important;              \/* Geen rand *\/\n            border-radius: 5px !important;        \/* Ronde hoeken *\/\n            font-size: 16px !important;           \/* Lettergrootte *\/\n            font-family: Arial, sans-serif !important; \/* Lettertype *\/\n            cursor: pointer !important;           \/* Muisklikcursor *\/\n            display: inline-block !important;     \/* Klikbare knop *\/\n            transition: background-color 0.3s !important; \/* Hover effect soepel *\/\n        }\n\n        a.custom-button:hover {\n            background-color: #ca9b52 !important; \/* Donkerder bij hover *\/\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"button-container\">\n        <a href=\"https:\/\/steentijdvondsten.nl\/post\/index.php\/puzzel\/\" class=\"custom-button\">Puzzelpagina<\/a>\n    <\/div>\n<\/body>\n<\/html>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<div style=\"height:215px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"template-frame\">\n  <div class=\"afbeelding-kader\">\n    <div class=\"tekst-kader\">\n      <h1>\u00a9<\/h1>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n\/* Template container *\/\n.template-frame {\n  width: 100%;\n  max-width: 1200px; \/* pas aan naar de breedte van je template *\/\n  margin: 0 auto;\n}\n\n\/* Afbeelding container: altijd volledige afbeelding zichtbaar *\/\n.afbeelding-kader {\n  width: 100%;\n  aspect-ratio: 1200\/200; \/* vervang door verhouding van jouw afbeelding *\/\n  background-image: url('https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/cropped-sierlijn.png');\n  background-size: contain; \/* afbeelding volledig zichtbaar *\/\n  background-repeat: no-repeat;\n  background-position: center;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n}\n\n\/* Tekstkader strak om de tekst *\/\n.tekst-kader {\n  display: inline-block;\n  background-color: white;\n  padding: 2mm 5mm; \/* 2mm boven\/onder, 5mm links\/rechts *\/\n  text-align: center;\n  box-sizing: border-box;\n}\n\n.tekst-kader h1 {\n  margin: 0;\n  font-size: 2em;\n  word-wrap: break-word;\n  line-height: 1.2;\n}\n<\/style>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"244\" src=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/witvlak3.png\" alt=\"\" class=\"wp-image-8863\" style=\"aspect-ratio:2.049311559398015;width:266px;height:auto\" srcset=\"https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/witvlak3.png 500w, https:\/\/steentijdvondsten.nl\/post\/wp-content\/uploads\/2026\/04\/witvlak3-300x146.png 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><sub><sub>\u00a9 Deze archeologie plugins zijn ontwikkeld door Steentijdvondsten.nl.<\/sub><\/sub><\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"nl\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Scroll naar boven knop<\/title>\n\n<style>\n    body {\n        height: 2000px; \/* Alleen voor demo scroll *\/\n        margin: 0;\n        font-family: Arial, sans-serif;\n    }\n\n    \/* Driehoek knop *\/\n    #scrollTopBtn {\n        position: fixed;\n        bottom: 20px;\n        left: 20px;\n        width: 0;\n        height: 0;\n        border-left: 20px solid transparent;\n        border-right: 20px solid transparent;\n        border-bottom: 30px solid #856028;\n        cursor: pointer;\n        display: none;\n        z-index: 9999;\n        transition: opacity 0.3s ease;\n    }\n\n    #scrollTopBtn:hover {\n        border-bottom-color: #6b5b4b;\n    }\n<\/style>\n<\/head>\n\n<body>\n\n<div id=\"scrollTopBtn\" onclick=\"scrollToTop()\"><\/div>\n\n<script>\n    const scrollBtn = document.getElementById(\"scrollTopBtn\");\n\n    \/\/ Toon knop als je 200px naar beneden hebt gescrold\n    window.onscroll = function() {\n        if (document.body.scrollTop > 200 || document.documentElement.scrollTop > 200) {\n            scrollBtn.style.display = \"block\";\n        } else {\n            scrollBtn.style.display = \"none\";\n        }\n    };\n\n    function scrollToTop() {\n        window.scrollTo({\n            top: 0,\n            behavior: 'smooth'\n        });\n    }\n<\/script>\n\n<\/body>\n<\/html>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Digitaal Erfgoed In 2005, ter gelegenheid van haar 25-jarig jubileum, introduceerde de Aktieve Praktijk Archeologie van Nederland haar eerste website, de website had een specifieke missie: visies over diepgaande en actuele, omstreden archeologische kwesties. In 2025, na de verandering van het APAN bestuur, besloot het nieuwe bestuur in 2026 de oude website definitief offline te gaan halen en te vervangen door een nieuwe website. Toch blijft de voormalige website, met haar waardevolle informatie over de Nederlandse archeologie, van groot belang als cultureel digitaal erfgoed. Ze bevat unieke gegevens en inzichten over Steentijdvondsten die we niet mogen verliezen. Met toestemming van de auteursrechthebbende, Klaas Geerstma, is besloten het niet zover te laten komen en de inhoud van zijn werk te redden en hier online te behouden. De website belicht verschillende belangrijke gebeurtenissen en kwesties uit de Nederlandse archeologie. Een van de meest besproken en terugkerende onderwerpen is de Zaak Vermaning. Deze zaak wordt op de website gepresenteerd als een rode draad die ons terugvoert naar de oorsprong van veel van de huidige discussies en ontwikkelingen in de archeologie, die we ook tegenkomen in de debatten op deze Steentijdvondsten website. Het herinnert ons aan de belangrijke lessen uit het verleden en laat zien hoe die ons vandaag de dag nog steeds be\u00efnvloeden. Bewerken en presenteren Een afbeelding opslaan met cm-schaal Met deze tool kun je een afbeelding uploaden, een gedeelte selecteren en bijsnijden, en het vervolgens precies op schaal (1:1) in centimeters aanpassen. Alles downloaden met de 1 cm-blokjes onder de afbeelding. Handleiding Popup Bekijk Handleiding &times; \ud83d\udcc2 Kies een bestand Selecteer de afbeelding die je wilt bewerken. \u270f\ufe0f Selecteer de omtrek Kies met het selectie-gereedschap het gedeelte van de afbeelding dat je wilt behouden. \u2702\ufe0f Knip de selectie uit Snijd de geselecteerde omtrek uit met de knop &#8220;knip selectie&#8221; zodat alleen het gekozen gedeelte overblijft. \ud83d\udcd0 Pas het formaat aan Versleep de afbeelding en de bijbehorende cm-schaal. De afbeelding kan naar wens in ieder formaat worden aangepast. Als de afbeelding buiten het werkblad valt, blijft deze toch volledig zichtbaar in de gedownloade versie. De cm-schaal wordt altijd automatisch gecentreerd en komt netjes onder de afbeelding te staan, zelfs als deze de afbeelding overlapt in het werkblad. In de gedownloade versie blijft alles correct gepositioneerd. De cm-schaal blijft altijd 1:1 en verandert niet mee bij formaat aanpassen. \ud83d\udcbe Opslaan Download de afbeelding met cm-schaal 1:1 als jpg afbeelding. Veldnotities Vondsten registreren en presenteren naar een eigen priv\u00e9 PDF-opmaak Privacy info popup Je privacy is gewaarborgd. i Alle gegevens die je invult in het registratieformulier zijn priv\u00e9. Niemand, ook niet steentijdvondsten.nl, kan deze gegevens inzien. Wij slaan geen informatie op en hebben geen toegang tot de door jou ingevulde gegevens. Alles wordt tijdelijk opgeslagen in je eigen browser. Je kunt alle ingevulde gegevens opslaan als een PDF-document om te bewaren. Let op: zodra je de pagina verlaat, worden de ingevulde gegevens permanent verwijderd. Je privacy is gewaarborgd. Bodemhorizonten Popup Bodem \u00d7 Bodemhorizonten De bodemhorizonten kunnen per land en regio sterk vari\u00ebren, afhankelijk van verschillende factoren zoals klimaat, bodemtype, vegetatie en menselijke activiteit. Humuslaag (O-horizont): Organisch materiaal zoals plantenresten en micro-organismen. A-horizont (plaggendek): Donkere bovenste minerale laag. E-horizont (eluviatiehorizont): Uitspoeling van mineralen en organisch materiaal. B-horizont (illuviatiehorizont): Ophoping van klei, ijzer of humus. Dekzandlaag: Door wind afgezet zand uit de ijstijd. Keilzandlaag: Compacte laag gevormd door gletsjers. C-horizont (ouderdomsbodem): Onderliggende oude bodemlaag. Let op: de diepte, samenstelling en volgorde van deze horizonten kunnen sterk vari\u00ebren afhankelijk van de lokale omstandigheden. Tijdschriften De amateurarcheoloog Ad Wouters publiceerde samen met Caspar Franssen tussen 1977 en 1987 archeologie artikelen in hun vakblad Archaeologische Berichten. Uitgave 1 t\/m 18 zijn hier: downloaden De APAN\/Extern is een vakblad magazine, dat jaarlijks aan de leden van de Vereniging van Actieve Praktijk Archeologie Nederland wordt verstrekt. Publicaties 1 t\/m 20 zijn hier: downloaden De illustratie van lithische artefacten: een gids voor het tekenen van stenen gereedschappen. https:\/\/www.archaeologists.net\/sites\/default\/files\/2025-04\/flint-paper-digital.pdf Puzzel \u00a9 \u00a9 Deze archeologie plugins zijn ontwikkeld door Steentijdvondsten.nl. Scroll naar boven knop<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1773","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/steentijdvondsten.nl\/post\/index.php\/wp-json\/wp\/v2\/pages\/1773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/steentijdvondsten.nl\/post\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/steentijdvondsten.nl\/post\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/steentijdvondsten.nl\/post\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/steentijdvondsten.nl\/post\/index.php\/wp-json\/wp\/v2\/comments?post=1773"}],"version-history":[{"count":24,"href":"https:\/\/steentijdvondsten.nl\/post\/index.php\/wp-json\/wp\/v2\/pages\/1773\/revisions"}],"predecessor-version":[{"id":11529,"href":"https:\/\/steentijdvondsten.nl\/post\/index.php\/wp-json\/wp\/v2\/pages\/1773\/revisions\/11529"}],"wp:attachment":[{"href":"https:\/\/steentijdvondsten.nl\/post\/index.php\/wp-json\/wp\/v2\/media?parent=1773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}