automatic week fill-in
This commit is contained in:
parent
3180b6406e
commit
05ea905494
1 changed files with 214 additions and 46 deletions
|
|
@ -9,11 +9,27 @@
|
|||
}
|
||||
body {
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
/* break after fourth page on large monitors */
|
||||
max-width: calc((74mm + 8mm) * 4);
|
||||
}
|
||||
|
||||
#settings {
|
||||
width: calc(100% - 12mm);
|
||||
margin: 4mm;
|
||||
padding: 4mm;
|
||||
background-color: white;
|
||||
}
|
||||
#settings * {
|
||||
margin: 2mm 0;
|
||||
}
|
||||
#settings :first-child {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#document {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.page {
|
||||
background-color: white;
|
||||
box-sizing: border-box;
|
||||
|
|
@ -33,9 +49,13 @@
|
|||
html {
|
||||
background-color: white;
|
||||
}
|
||||
#settings {
|
||||
display: none;
|
||||
}
|
||||
.page {
|
||||
height: 100%;
|
||||
max-height: 100%;
|
||||
margin: 0;
|
||||
break-inside: avoid;
|
||||
break-after: page;
|
||||
}
|
||||
}
|
||||
|
|
@ -84,11 +104,23 @@
|
|||
.month thead {
|
||||
height: 0.01%;
|
||||
}
|
||||
.month td:not(:last-child) {
|
||||
.month td {
|
||||
border: thin solid black;
|
||||
}
|
||||
|
||||
/* page 4-5 */
|
||||
.week table {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
border: thin dashed black;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.week tr {
|
||||
border: thin solid black;
|
||||
}
|
||||
.week tr:nth-child(odd) {
|
||||
height: 4mm;
|
||||
}
|
||||
|
||||
/* page 6-7 */
|
||||
.page:has(img) {
|
||||
|
|
@ -96,57 +128,193 @@
|
|||
}
|
||||
|
||||
/* page 8 */
|
||||
.sudoku table:has(table) {
|
||||
width: fit-content;
|
||||
margin: auto;
|
||||
padding-top: 12mm;
|
||||
border-collapse: separate;
|
||||
}
|
||||
.sudoku table table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.sudoku table table td {
|
||||
width: 5mm;
|
||||
height: 5mm;
|
||||
border: thin solid black;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="page">
|
||||
<div class="year" contenteditable>2025</div>
|
||||
<div class="week" contenteditable>W46</div>
|
||||
<div class="date" contenteditable>11-09 ... 11-15</div>
|
||||
<div class="return-addr" contenteditable>
|
||||
<p>Your Name Here</p>
|
||||
<p>email@example.com</p>
|
||||
<div id="settings">
|
||||
<h1>settings</h1>
|
||||
<div>
|
||||
<label for="date">date:</label>
|
||||
<input id="settings-date" type="date" name="date">
|
||||
</div>
|
||||
<div class="footer">nycki.net/papermod</div>
|
||||
<button id="settings-update">update</button>
|
||||
</div>
|
||||
<div class="page month">
|
||||
<div class="landscape">
|
||||
<table contenteditable>
|
||||
<thead><td>mon</td><td>tue</td><td>wed</td><td>thu</td><td>fri</td><td>sat</td><td>sun</td><td></td></thead>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
<div id="document">
|
||||
<div class="page">
|
||||
<div class="year" contenteditable> </div>
|
||||
<div class="week" contenteditable> </div>
|
||||
<div class="date" contenteditable>11-09 ... 11-15</div>
|
||||
<div class="return-addr" contenteditable>
|
||||
<p>Your Name Here</p>
|
||||
<p>email@example.com</p>
|
||||
</div>
|
||||
<div class="footer">nycki.net/papermod</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page month">
|
||||
<div class="landscape">
|
||||
<table contenteditable>
|
||||
<thead><td>mon</td><td>tue</td><td>wed</td><td>thu</td><td>fri</td><td>sat</td><td>sun</td><td></td></thead>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<div class="landscape">
|
||||
<table contenteditable>
|
||||
<thead><td>mon</td><td>tue</td><td>wed</td><td>thu</td><td>fri</td><td>sat</td><td>sun</td></thead>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page month">
|
||||
<div class="landscape">
|
||||
<table contenteditable>
|
||||
<thead><td>mon</td><td>tue</td><td>wed</td><td>thu</td><td>fri</td><td>sat</td><td>sun</td></thead>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page week">
|
||||
<table>
|
||||
<tr><td></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="page week">
|
||||
<table>
|
||||
<tr><td></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td></td></tr>
|
||||
<tr><td></td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="page">
|
||||
<img src="dots.svg">
|
||||
</div>
|
||||
<div class="page">
|
||||
<img src="dots.svg">
|
||||
</div>
|
||||
<div class="page">
|
||||
<div class="sudoku">
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
<td>
|
||||
<table>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
<tr><td></td><td></td><td></td></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="page">
|
||||
<h1>page 4</h1>
|
||||
</div>
|
||||
<div class="page">
|
||||
<h1>page 5</h1>
|
||||
</div>
|
||||
<div class="page">
|
||||
<img src="dots.svg">
|
||||
</div>
|
||||
<div class="page">
|
||||
<img src="dots.svg">
|
||||
</div>
|
||||
<div class="page">
|
||||
<h1>page 8</h1>
|
||||
</div>
|
||||
<script>
|
||||
const elDate = document.querySelector('#settings-date');
|
||||
const elButton = document.querySelector('#settings-update');
|
||||
|
||||
function getWeek(date) {
|
||||
const januaryFirst = new Date(date.getFullYear(), 0, 1);
|
||||
return Math.ceil((((date - januaryFirst) / 86_400_000) + januaryFirst.getDay()+1) / 7);
|
||||
}
|
||||
|
||||
function update() {
|
||||
const date = new Date(elDate.value);
|
||||
date.setHours(12); // I don't care about the time zone
|
||||
document.querySelector('.year').textContent = date.getFullYear();
|
||||
document.querySelector('.week').textContent = "W" + getWeek(date);
|
||||
|
||||
const monday = new Date(date);
|
||||
monday.setDate(date.getDate() - date.getDay());
|
||||
const mm1 = monday.getMonth() + 1;
|
||||
const dd1 = monday.getDate();
|
||||
const sunday = new Date(monday);
|
||||
sunday.setDate(dd1 + 6);
|
||||
const mm2 = sunday.getMonth() + 1;
|
||||
const dd2 = sunday.getDate();
|
||||
document.querySelector('.date').textContent = `${mm1}-${dd1} ... ${mm2}-${dd2}`
|
||||
}
|
||||
|
||||
elButton.onclick = update;
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Reference in a new issue