diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9b238c2..36351c3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -16,6 +16,7 @@ concurrency: jobs: build: + if: github.repository == 'jmapio/jmapio.github.io' runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 diff --git a/Dockerfile.rfc b/Dockerfile.rfc index 7f5128d..bb3d251 100644 --- a/Dockerfile.rfc +++ b/Dockerfile.rfc @@ -17,4 +17,4 @@ RUN python3 -m venv .venv \ COPY package.json package-lock.json ./ RUN npm ci -COPY scripts ./scripts +COPY _scripts ./_scripts diff --git a/README.md b/README.md index dcb298c..d17156c 100644 --- a/README.md +++ b/README.md @@ -40,13 +40,13 @@ _bin/generate-rfcs The pipeline is two steps: ```sh -node scripts/fetch-rfc-xml.js # fetches RFC and draft XMLs into _tmp/rfc-xml/ -node scripts/generate-rfc-templates.js # runs xml2rfc and writes Liquid templates + ToC includes +node _scripts/fetch-rfc-xml.js # fetches RFC and draft XMLs into _tmp/rfc-xml/ +node _scripts/generate-rfc-templates.js # runs xml2rfc and writes Liquid templates + ToC includes ``` The list of source documents (RFCs and active drafts) lives at the top of -`scripts/fetch-rfc-xml.js` — update it there when a new RFC or draft revision is -published. +`_scripts/fetch-rfc-xml.js` — update it there when a new RFC or draft revision +is published. ## Generating OG images @@ -54,7 +54,7 @@ published. _bin/generate-og-images ``` -This uses Playwright to screenshot `scripts/og-image.html` for each page in +This uses Playwright to screenshot `_scripts/og-image.html` for each page in `pages/` and writes the results to `images/og/`. ## Linting and formatting diff --git a/_bin/generate-rfcs b/_bin/generate-rfcs index a16fe75..a87c420 100755 --- a/_bin/generate-rfcs +++ b/_bin/generate-rfcs @@ -14,6 +14,6 @@ docker run --rm \ -it \ jmapio-rfc \ bash -c ' - node scripts/fetch-rfc-xml.js - node scripts/generate-rfc-templates.js + node _scripts/fetch-rfc-xml.js + node _scripts/generate-rfc-templates.js ' diff --git a/_config.yml b/_config.yml index 95cf3f0..2eedf3b 100644 --- a/_config.yml +++ b/_config.yml @@ -6,11 +6,8 @@ lightningcss: esbuild: target: es2022 exclude: - - _tmp - - _bin - - scripts - - vendor - package.json - package-lock.json - prettier.config.mjs - stylelint.config.js + - README.md diff --git a/_includes/components/toc-fab.liquid b/_includes/components/toc-fab.liquid index 75c923e..bf5f1f7 100644 --- a/_includes/components/toc-fab.liquid +++ b/_includes/components/toc-fab.liquid @@ -18,9 +18,9 @@ hidden >
-- JMAP (JSON Meta Application Protocol) is an open IETF standard for synchronising mail, calendars, and contacts between a client and server. It replaces IMAP, CardDAV, and CalDAV with a single consistent protocol built on HTTPS and JSON, with efficient batch requests and real-time push updates built in. -
-- Yes. JMAP covers everything IMAP does — reading, - searching, moving, flagging, and even sending email — with a much cleaner and more efficient API. JMAP also replaces POP3, client-side SMTP, CardDAV, and CalDAV. -
-- JMAP does not replace server-to-server SMTP. Email servers still use SMTP to route messages between domains. -
-- Fastmail is the largest JMAP provider and was instrumental in developing the standard — their web, desktop, and mobile clients all run on JMAP. -
-Stalwart Mail Server is a modern open-source server with complete JMAP support. Apache James and Cyrus IMAP also both support JMAP. -
-- Yes. RFC 8620 (Core), RFC 8621 (Mail), and RFC 9610 (Contacts) are published IETF standards and will not change in backwards-incompatible ways. Fastmail has been running their entire production email service on JMAP since 2019. -
-- JMAP deliberately does not define its own authentication mechanism, it just uses standard HTTP authentication. In practice, that's often OAuth 2.0 with Bearer tokens. This means JMAP works with your existing identity infrastructure without any changes. -
-- JMAP performs as well or better than IMAP in all tested scenarios. The white paper contains detailed benchmarks. -
-- Modern IMAP with all extensions enabled can get a lot closer to JMAP's efficiency, but this requires both the client and server to implement the right extensions — which is rarely the case in practice. -
+ {{ item.answer | markdownify }}methodCalls array. Query, fetch, and send, all in one
+ POST a methodCalls array. Query, fetch, and send, all in one
HTTP request.
-
title: Subscribe to push
@@ -93,10 +93,10 @@ explore:
Real-time push
No patents. No fees. Fully documented. JMAP is an open standard any organisation can implement, not more proprietary lock-in from big tech companies. @@ -247,10 +247,10 @@ explore: Spec complexity