Skip to content

Commit 4e11795

Browse files
committed
Updated changelog
1 parent d1a0618 commit 4e11795

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed

CHANGELOG.md

+129
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,135 @@
22

33
## [Unreleased]
44

5+
> [!NOTE]
6+
> TLDR:
7+
> - Engine rewritten in OCaml
8+
> - Fewer bugs when navigating back
9+
> - Stronger foundation (eg, for subslips)
10+
> - Custom scripts requires minor adjustments
11+
> - Breaking change in subslip HTML
12+
> - Drawing now in SVG
13+
> - No more zoom issues
14+
> - Erasing works "per-stroke"
15+
> - Revamped table of content
16+
> - Now based on title structure rather than subslips
17+
> - New `--markdown-output` flag for converting to GFM
18+
> - Parser bugfixes
19+
> - License change: Now GPLv3 (previously MIT)
20+
> - npm distribution discontinued.
21+
> - Special thanks to NLNet for their [sponsorship](https://nlnet.nl/project/Slipshow/)!
22+
23+
Dear readers,
24+
25+
I am thrilled to announce the 0.1 release of Slipshow, the slip-based
26+
presentation tool!
27+
28+
This is a _major_ minor release. While versions `0.0.1` to `0.0.33` have served well
29+
to experiment, this release marks a fresh start, aimed at being a solid
30+
foundation for a project with a clear direction. A huge thank you to NLNet for
31+
[sponsoring](https://nlnet.nl/project/Slipshow/) this milestone!
32+
33+
So, what is new? Quite a lot, the main change being that the engine has been
34+
_fully rewritten_.
35+
36+
### The engine
37+
38+
Started as a single file javascript project, the old engine evolved presentation
39+
by presentation -- leading to numerous bugs, maintenance challenge or
40+
extensibility issue. (In other word, I did all I could not to touch it despite
41+
all the bugs)
42+
43+
This release introduces a complete rewrite of the engine in OCaml, with new
44+
design choices that improve reliability and expandability. Let's go over the key
45+
benefits and breaking changes.
46+
47+
#### Navigating Forward... and Backward
48+
49+
One of the greatest weakness of the old engine was handling backward
50+
navigation. Since it started as a simple "script scheduler", going back wasn't straightforward. The workaround involved taking a snapshot
51+
of... everything (the DOM, the state, ...), to be able to go back in time.
52+
53+
This had many bugs, in animations (such as the "focus" action), and in its
54+
iteraction with other features (such as drawing).
55+
56+
So, what is new in this engine? The engine now records an undo function for each
57+
step of the presentation.
58+
While this may not sound much, it is a ton better in terms of development. It's
59+
a much stronger foundation to build new features from. It's also much more
60+
efficient for long presentations.
61+
62+
In most cases, your old presentations will work without modification in the new
63+
engine. However, there is one case where it needs modification: when you include
64+
the execution of a custom script in your presentation. In this case, you need to
65+
return the function undo to undo the executed step: see the
66+
[documentation](https://slipshow.readthedocs.io/en/stable/syntax.html#custom-scripts)!
67+
(This is not ideal and better solutions are being experimented)
68+
69+
#### Writing
70+
71+
Previously, live annotations used the excellent
72+
[atrament](https://github.com/jakubfiala/atrament) library. While great in many
73+
cases, its bitmap-based approach caused blurriness when zooming.
74+
75+
This release introduces a custom SVG-based annotation system, which eliminates
76+
zoom issues. Another change: erasing now works stroke-by-stroke instead of
77+
pixel-by-pixel.
78+
79+
#### Table of content
80+
81+
The old table of contents was based on the slip structure, which didn’t work
82+
well for presentations that primarily used a single slip (as is often the case
83+
with compiled presentations).
84+
85+
The new sidebar-style table of contents is now generated from headers, making it
86+
more intuitive and aligned with the presentation’s structure—resulting in a much
87+
smoother navigation experience!
88+
89+
#### Breaking change: Subslips
90+
91+
The HTML structure for subslips has evolved, in particuler to avoid having to
92+
provide the scale of your subslips.
93+
94+
Support for subslip in the new engine is not mature and will be announced in the
95+
next release, but bear in mind that if your presentation relies on them, you
96+
might want to wait a bit before migrating to the new engine!
97+
98+
### Compiler
99+
100+
While this release focuses on the engine, the compiler has also seen improvements, including bug fixes (particularly in the parser) and a new feature:
101+
102+
#### `--markdown-output` for markdown exports
103+
104+
If you want to print your presentation or host it as a static webpage, the
105+
default format can be cluttered with annotations. The new `--markdown-output` flag
106+
lets you generate a clean, GitHub Flavored Markdown (GFM) file without
107+
annotations.
108+
109+
### Other
110+
111+
Beyond technical improvements, there are some important project-wide updates:
112+
113+
- License Change: The project has transitioned from MIT to GPLv3, aligning
114+
better with its values.
115+
- npm Distribution Discontinued: Maintaining an npm package added unnecessary
116+
complexity with minimal benefit. Please use binary releases — or better yet,
117+
contribute to getting Slipshow packaged in distributions!
118+
119+
### Looking ahead
120+
121+
Several improvements did not make it in this release, but are already quite
122+
advanced. So here is a little peek into the future:
123+
124+
- Subslip returns! After having been a little left over since the introduction
125+
of the compiler, are coming back, with a better though implementation!
126+
- Full mobile support is on its way! It has already been improved, but is not
127+
yet mature enough to be announced in this release.
128+
129+
### Conclusion
130+
131+
Looking forward to your bug reports!
132+
133+
5134
## [v0.0.33] September 13th, 2024.
6135

7136
### Fixed

0 commit comments

Comments
 (0)