rmink 2.0.2__tar.gz → 2.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rmink-2.0.4/.github/FUNDING.yml +1 -0
- {rmink-2.0.2 → rmink-2.0.4}/CHANGELOG.md +8 -0
- {rmink-2.0.2 → rmink-2.0.4}/PKG-INFO +6 -4
- {rmink-2.0.2 → rmink-2.0.4}/README.md +5 -3
- {rmink-2.0.2 → rmink-2.0.4}/deploy/vercel/requirements.txt +1 -1
- {rmink-2.0.2 → rmink-2.0.4}/docs/hosting.md +5 -0
- {rmink-2.0.2 → rmink-2.0.4}/pyproject.toml +1 -1
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/support.py +1 -2
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/web/static/index.html +16 -5
- rmink-2.0.2/.github/FUNDING.yml +0 -3
- {rmink-2.0.2 → rmink-2.0.4}/.dockerignore +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/.github/workflows/ci.yml +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/.github/workflows/release.yml +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/.gitignore +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/Dockerfile +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/LICENSE +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/deploy/vercel/.python-version +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/deploy/vercel/app.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/deploy/vercel/vercel.json +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/docs/device-acceptance.md +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/docs/releasing.md +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/examples/document.pdf +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/examples/handwriting.jpg +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/examples/logo.svg +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/examples/make_examples.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/skills/rmink/SKILL.md +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/__init__.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/api.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/cli.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/color/__init__.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/color/palette.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/devices.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/extract/__init__.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/extract/centerline.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/extract/raster.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/extract/vector.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/geometry/__init__.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/geometry/hatch.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/geometry/order.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/geometry/simplify.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/geometry/transform.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/ingest/__init__.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/ingest/image.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/ingest/pdf.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/ingest/svg.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/mcp_server.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/model.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/options.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/package/__init__.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/package/rmdoc.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/render/__init__.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/render/preview.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/web/__init__.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/web/app.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/web/static/thanks.html +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/writer/__init__.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/src/rmink/writer/rm_v6.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/tests/conftest.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/tests/test_centerline.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/tests/test_fidelity.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/tests/test_geometry.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/tests/test_interfaces.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/tests/test_web.py +0 -0
- {rmink-2.0.2 → rmink-2.0.4}/tests/test_writer.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
custom: ["https://buy.stripe.com/7sY4gy4b1aQo0iI0SB1sQ00"]
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.4 — 2026-10-10
|
|
4
|
+
|
|
5
|
+
- Web UI on phones: the preview comes right after the file list instead of below all the options, with a smaller empty state and two previews per row.
|
|
6
|
+
|
|
7
|
+
## 2.0.3 — 2026-10-10
|
|
8
|
+
|
|
9
|
+
- Support rmink with 100 kr: a Stripe link in the web UI (button, a dismissible note after downloads, footer), in `rmink web` and in the README. Set `RMINK_SUPPORT_URL=""` to hide it, for example in a fork.
|
|
10
|
+
|
|
3
11
|
## 2.0.2 — 2026-10-10
|
|
4
12
|
|
|
5
13
|
- Fix: downloads from the web UI are served as `application/octet-stream` instead of `application/zip`. Safari on macOS unpacked the notebook into a folder, and once that folder was zipped again the tablet could not import it.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: rmink
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.4
|
|
4
4
|
Summary: Convert images, photos, SVGs and PDFs into native, editable reMarkable ink (.rm v6 / .rmdoc)
|
|
5
5
|
Project-URL: Homepage, https://github.com/thagvall/rmink
|
|
6
6
|
Project-URL: Source, https://github.com/thagvall/rmink
|
|
@@ -179,9 +179,11 @@ writer as well as the tracing.
|
|
|
179
179
|
|
|
180
180
|
## Support
|
|
181
181
|
|
|
182
|
-
rmink is free, and that is not going to change. If it saves you time
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
rmink is free, and that is not going to change. If it saves you time and you
|
|
183
|
+
want to say thanks, you can [support it with 100 kr](https://buy.stripe.com/7sY4gy4b1aQo0iI0SB1sQ00) via Stripe.
|
|
184
|
+
The money pays for the hosted web service and further development. Starring
|
|
185
|
+
the repo and reporting how it works on your tablet in an
|
|
186
|
+
[issue](https://github.com/thagvall/rmink/issues) helps a lot too.
|
|
185
187
|
|
|
186
188
|
## License
|
|
187
189
|
|
|
@@ -137,9 +137,11 @@ writer as well as the tracing.
|
|
|
137
137
|
|
|
138
138
|
## Support
|
|
139
139
|
|
|
140
|
-
rmink is free, and that is not going to change. If it saves you time
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
rmink is free, and that is not going to change. If it saves you time and you
|
|
141
|
+
want to say thanks, you can [support it with 100 kr](https://buy.stripe.com/7sY4gy4b1aQo0iI0SB1sQ00) via Stripe.
|
|
142
|
+
The money pays for the hosted web service and further development. Starring
|
|
143
|
+
the repo and reporting how it works on your tablet in an
|
|
144
|
+
[issue](https://github.com/thagvall/rmink/issues) helps a lot too.
|
|
143
145
|
|
|
144
146
|
## License
|
|
145
147
|
|
|
@@ -20,6 +20,11 @@ on Hobby; selling is not.
|
|
|
20
20
|
|
|
21
21
|
**Updating the site:** release a new version to PyPI, bump the version in
|
|
22
22
|
`deploy/vercel/requirements.txt` and push. Vercel redeploys automatically.
|
|
23
|
+
The project sets `VERCEL_FORCE_NO_BUILD_CACHE=1`. Without it, Vercel restores
|
|
24
|
+
uv's cached copy of the PyPI index from the previous build, and a newly
|
|
25
|
+
released version is reported as missing ("no version of rmink[web]==X"). If
|
|
26
|
+
a build ever fails that way, check that the variable is still set and
|
|
27
|
+
redeploy.
|
|
23
28
|
|
|
24
29
|
**Limits on the hosted version:**
|
|
25
30
|
- Vercel caps each request and response at 4.5 MB. The browser shrinks
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "rmink"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.4"
|
|
8
8
|
description = "Convert images, photos, SVGs and PDFs into native, editable reMarkable ink (.rm v6 / .rmdoc)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -9,8 +9,7 @@ from __future__ import annotations
|
|
|
9
9
|
|
|
10
10
|
import os
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
DEFAULT_SUPPORT_URL = ""
|
|
12
|
+
DEFAULT_SUPPORT_URL = "https://buy.stripe.com/7sY4gy4b1aQo0iI0SB1sQ00"
|
|
14
13
|
DEFAULT_SOURCE_URL = "https://github.com/thagvall/rmink"
|
|
15
14
|
|
|
16
15
|
|
|
@@ -73,7 +73,6 @@ main {
|
|
|
73
73
|
display: grid; gap: 20px; grid-template-columns: 380px 1fr;
|
|
74
74
|
max-width: 1280px; margin: 0 auto; padding: 12px 20px 40px;
|
|
75
75
|
}
|
|
76
|
-
@media (max-width: 880px) { main { grid-template-columns: 1fr; } }
|
|
77
76
|
.panel {
|
|
78
77
|
background: var(--surface); border: 1px solid var(--line);
|
|
79
78
|
border-radius: var(--radius); box-shadow: var(--shadow); padding: 16px;
|
|
@@ -177,6 +176,18 @@ dialog img { display: block; max-width: 96vw; max-height: 92vh; background: #fff
|
|
|
177
176
|
.help .repair p { margin: 6px 0 8px; }
|
|
178
177
|
.help code { background: var(--paper); padding: 1px 5px; border-radius: 4px; border: 1px solid var(--line); }
|
|
179
178
|
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
|
|
179
|
+
@media (max-width: 880px) {
|
|
180
|
+
main { grid-template-columns: 1fr; gap: 16px; }
|
|
181
|
+
/* Phones: show the preview right after the file list, before the options. */
|
|
182
|
+
aside { display: contents; }
|
|
183
|
+
.p-files { order: 1; }
|
|
184
|
+
#preview { order: 2; }
|
|
185
|
+
.p-options { order: 3; }
|
|
186
|
+
.p-download { order: 4; }
|
|
187
|
+
.empty { min-height: 0; padding: 16px; }
|
|
188
|
+
.empty svg { width: 64px; }
|
|
189
|
+
#gallery { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
|
|
190
|
+
}
|
|
180
191
|
</style>
|
|
181
192
|
</head>
|
|
182
193
|
<body>
|
|
@@ -190,7 +201,7 @@ dialog img { display: block; max-width: 96vw; max-height: 92vh; background: #fff
|
|
|
190
201
|
|
|
191
202
|
<main>
|
|
192
203
|
<aside>
|
|
193
|
-
<section class="panel">
|
|
204
|
+
<section class="panel p-files">
|
|
194
205
|
<div id="drop" tabindex="0" role="button" aria-describedby="drop-hint">
|
|
195
206
|
<strong>Drop files here</strong>
|
|
196
207
|
<span id="drop-hint">or click to choose — JPG, PNG, HEIC, SVG, PDF</span>
|
|
@@ -199,7 +210,7 @@ dialog img { display: block; max-width: 96vw; max-height: 92vh; background: #fff
|
|
|
199
210
|
<ul id="files" aria-label="Selected files"></ul>
|
|
200
211
|
</section>
|
|
201
212
|
|
|
202
|
-
<section class="panel">
|
|
213
|
+
<section class="panel p-options">
|
|
203
214
|
<fieldset>
|
|
204
215
|
<legend>Device</legend>
|
|
205
216
|
<div class="seg" id="devices" role="group" aria-label="Device"></div>
|
|
@@ -270,7 +281,7 @@ dialog img { display: block; max-width: 96vw; max-height: 92vh; background: #fff
|
|
|
270
281
|
</fieldset>
|
|
271
282
|
</section>
|
|
272
283
|
|
|
273
|
-
<section class="panel">
|
|
284
|
+
<section class="panel p-download">
|
|
274
285
|
<fieldset>
|
|
275
286
|
<label class="field"><span>Notebook name</span>
|
|
276
287
|
<input type="text" name="name" placeholder="From the first file">
|
|
@@ -295,7 +306,7 @@ dialog img { display: block; max-width: 96vw; max-height: 92vh; background: #fff
|
|
|
295
306
|
</section>
|
|
296
307
|
</aside>
|
|
297
308
|
|
|
298
|
-
<section aria-live="polite">
|
|
309
|
+
<section id="preview" aria-live="polite">
|
|
299
310
|
<div id="status"><span class="spinner"></span><span id="status-text">Add files to see a preview.</span></div>
|
|
300
311
|
<div id="notices"></div>
|
|
301
312
|
<p id="nudge" hidden>
|
rmink-2.0.2/.github/FUNDING.yml
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|