
An update of Project Japanese
In this article I talked about the creation of my Japanese grammar reference project. A year later, I did a small update, and there are some things I'd like to talk about.
N2 level
First, I added a lot of new notions, mostly from the JLPT N2 level. This accounts for almost two hundred new grammar points.
I had to separate files to make it more readable. The goal was to not have too many points on one page, except if it really made sense (similar meaning, antonyms, logical progression, etc.). This proved difficult at times, and there are a few pages that feel oversized, but it's decent.
All in all, there's now really a lot of content, and I'm quite happy with it. There's some stuff that is still missing, like humble speech or causative-passive, that I will progressively add. Since it will probably take me a while to successfully ace this current study level, I suspect that there will not be new notions for higher levels for quite some time.
Updating Quartz
Having not updated Quartz for such a long time and having done quite a lot of customisation, the update was a painful process.
Since I last updated, there was notably the addition of a hamburger button. But in the process, the CSS and layout of Quartz were hugely modified (perhaps for other reasons too, I did not check). It's for a good cause, but... this shows the limitations of this generator. There are no stable versions; it's a rolling release where you should regularly update and merge the repository to not have any surprises. I must say I'm not a fan: breaking changes should be found in changelogs to have visibility, and a commit list is not friendly enough.
Still, I'm happy with how I fixed it, knowing that it's better than ever. Especially the mobile version being really improved with the new menu bar.

Fixing issues
There are also a few issues that I managed to fix.
I found that Wikilinks (internal links) have a slightly different behavior between Obsidian and Quartz. [[file#a#b#c]]
(# corresponding to a title anchor) does not work in Quartz, it should be [[file#c]]
. I changed all occurrences, and it fixed a few pages.
Last time, I thought that popovers did not recognize Japanese text. But this was a wrong analysis. Instead, when opening multiple popovers from the same page, it does not scroll to the correct position. This happens in a variety of cases, and since this project is centered around Japanese, I got it wrong... I compared it against the Quartz website, which does not include this case; hence, my mistake. This popover bug still exists, but now the bug report is correct.
The biggest issue I had, however, was the search behavior. Seeing that it did not change, I fiddled a bit and entered an issue. It has not exactly been flagged as a bug, but the highlighted text does not correspond to the search criteria. For Japanese text, I modified the encoder for CJK, and now the behavior is stricter and matches correctly what is searched, making it way more usable for my case. This was a big difference between the website version versus browsing Obsidian that is now resolved.
New Dockerization
A big caveat of what I did last year was the Dockerization. Indeed, the main goal of Quartz is to generate static files to be served by a web server. But what I did was to use the Quartz serve command, which runs npm, hugely more memory intensive than only running nginx.
Changing this was in fact super easy, and I wonder why I have not done this before. In the Dockerfile, after generating the website, I copy the generated content to an Nginx image, along with a configuration suitable for Quartz, as you can see below.
FROM node:22-slim AS quartz
WORKDIR /usr/src/app
COPY --from=builder /usr/src/app/ /usr/src/app/
COPY . .
COPY --from=convert /usr/src/app/ /usr/src/app/content/
RUN npx quartz build
FROM nginx:latest
WORKDIR /usr/share/nginx/html
COPY --from=quartz /usr/src/app/public/ /usr/share/nginx/html/
WORKDIR /etc/nginx/
COPY custom/nginx/default.conf /etc/nginx/conf.d
So that's it! There have been a lot of small improvements to the code that make it way better to use. I usually use the Obsidian Vault, but with this new update I see myself using the website version more, especially on mobile devices. Now, what's left is mostly to continue honing my Japanese skills. Until next time!