Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
6388112
Hide draft blog posts from listings, feeds, and search
atharvadeosthale Jun 26, 2026
9086dd0
Merge pull request #3065 from appwrite/stardust-blog-drafts
atharvadeosthale Jun 29, 2026
2a3923b
Restructure databases docs into per-database-type sections
atharvadeosthale Jun 26, 2026
dcdb713
Add DocumentsDB documentation section
atharvadeosthale Jun 29, 2026
424e023
Add VectorsDB documentation section
atharvadeosthale Jul 1, 2026
1739db5
Add JSON import and export docs for DocumentsDB
atharvadeosthale Jul 1, 2026
faff298
Address review feedback on DocumentsDB docs
atharvadeosthale Jul 1, 2026
93b6520
Merge pull request #3083 from appwrite/main
adityaoberai Jul 3, 2026
e313aa1
Storage stardust docs
adityaoberai Jul 3, 2026
228badd
Simplify new docs
adityaoberai Jul 6, 2026
4cf3919
Merge branch 'main' into stardust
atharvadeosthale Jul 7, 2026
99deb37
Add PostgreSQL native database docs with integrations
atharvadeosthale Jul 8, 2026
97ba538
Add MySQL native database docs with integrations
atharvadeosthale Jul 8, 2026
63da15d
Merge remote-tracking branch 'origin/stardust' into stardust-databases
atharvadeosthale Jul 8, 2026
02bc531
Add draft announcement posts for DocumentsDB, VectorsDB, and native d…
atharvadeosthale Jul 8, 2026
0a903d6
Merge remote-tracking branch 'origin/projects-api' into atharva/appwr…
atharvadeosthale Jul 10, 2026
6331462
docs(partners): add OAuth server section and Sign in with your produc…
atharvadeosthale Jul 10, 2026
a85e3a6
Merge remote-tracking branch 'origin/projects-api' into stardust-oauth
atharvadeosthale Jul 10, 2026
d23f74d
Add custom scopes guide and expand the scopes reference
atharvadeosthale Jul 13, 2026
2ad43a9
docs: address OAuth2 server review feedback
atharvadeosthale Jul 14, 2026
289f7de
docs(oauth-server): replace raw HTTP blocks with tabbed cURL and Hurl…
atharvadeosthale Jul 15, 2026
1448a12
docs(oauth-server): rename custom scopes to dot notation (tasks.read,…
atharvadeosthale Jul 15, 2026
24f9966
docs(oauth-server): add concept diagrams to all reference pages
atharvadeosthale Jul 15, 2026
d2aa7e5
docs(oauth-server): tab authorize URL as text/curl/hurl and authentic…
atharvadeosthale Jul 15, 2026
850d7b6
Add folder support
adityaoberai Jul 15, 2026
c8c4172
edits
adityaoberai Jul 15, 2026
3a7072e
Add announcement blog and changelog
adityaoberai Jul 15, 2026
c7e7d33
docs(oauth-server): move section under Auth product
atharvadeosthale Jul 16, 2026
b2a6e1c
docs(oauth-server): address diagram and standards review feedback
atharvadeosthale Jul 16, 2026
948c056
docs(oauth-server): remove stray diagram PNGs
atharvadeosthale Jul 16, 2026
ba4b838
Add database concepts docs for PostgreSQL and MySQL
atharvadeosthale Jul 16, 2026
ae1637c
Add connective prose between adjacent code blocks in integrations
atharvadeosthale Jul 16, 2026
aab3099
docs(oauth-server): address second round of guide review feedback
atharvadeosthale Jul 17, 2026
de42dc6
docs(oauth-server): enable the server in updateOAuth2Server examples
atharvadeosthale Jul 17, 2026
5023905
docs(partners): add Sign in with Appwrite section
atharvadeosthale Jul 21, 2026
2afa7b8
Merge remote-tracking branch 'origin/projects-api' into stardust-apps
atharvadeosthale Jul 21, 2026
f1787fd
docs(partners): revise Sign in with Appwrite pages with diagrams and …
atharvadeosthale Jul 22, 2026
57426bd
Add folders concept and docs
adityaoberai Jul 22, 2026
c9ede31
Merge pull request #3120 from appwrite/main
adityaoberai Jul 22, 2026
701b938
docs(partners): address review feedback and add Device flow concept page
atharvadeosthale Jul 23, 2026
714644e
Merge branch 'stardust' into stardust-apps
atharvadeosthale Jul 27, 2026
f0b9899
Merge pull request #3116 from appwrite/stardust-apps
atharvadeosthale Jul 27, 2026
e4731cf
Merge branch 'stardust' into stardust-databases
atharvadeosthale Jul 27, 2026
56a82e1
Normalize optimize cache formatting
atharvadeosthale Jul 27, 2026
d6fb9a8
Merge pull request #3072 from appwrite/stardust-databases
atharvadeosthale Jul 27, 2026
96a9bfd
docs(oauth-server): restyle concept diagrams with brand theme
atharvadeosthale Jul 27, 2026
a9b5b09
Merge remote-tracking branch 'origin/stardust' into stardust-oauth
atharvadeosthale Jul 27, 2026
f60d3c5
Merge pull request #3096 from appwrite/stardust-oauth
atharvadeosthale Jul 27, 2026
b46a43f
Merge pull request #3126 from appwrite/main
adityaoberai Jul 27, 2026
70d5077
Update folders docs to include new list folders example
adityaoberai Jul 28, 2026
b95c07a
docs updates
adityaoberai Jul 28, 2026
edaecc4
improvements
adityaoberai Jul 28, 2026
c01f728
Merge branch 'stardust' into stardust-storage
adityaoberai Jul 28, 2026
b04d027
Merge pull request #3084 from appwrite/stardust-storage
adityaoberai Jul 28, 2026
bfc0233
Merge pull request #3131 from appwrite/main
adityaoberai Jul 28, 2026
29da59a
update stardust storage announcement
adityaoberai Jul 28, 2026
80ba865
Merge pull request #3132 from appwrite/stardust-storage
adityaoberai Jul 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
52 changes: 41 additions & 11 deletions .optimize-cache.json
Original file line number Diff line number Diff line change
Expand Up @@ -239,11 +239,12 @@
"static/images/blog/announcing-password-strength/password-strength.png": "a7be43cb33eb329eea4d62008d05426d9327cb6fe6bd3de47fa588db5db03458",
"static/images/blog/announcing-phone-OTP-pricing/cover.png": "598d55359ca4cb2b46846a8fd76b1f051be7c5f3199b50ffa92a28e84e5f3d67",
"static/images/blog/announcing-presence-api/cover.png": "9c3600d4014e5eecb59ea2d2e0d84c4ac52bf38357ad465f44631c9421bf5734",
"static/images/blog/announcing-projects-api/cover.png": "ac2de4ff48a10f1d306dd4ab55b9bf7463fc3f271598621aca7c955ba10bdc36",
"static/images/blog/announcing-projects-api/cover.png": "218c840c4703f6ad10ae2430e95096696714f616df1e5f3fde7376455123c5f8",
"static/images/blog/announcing-realtime-channel-helpers/cover.png": "cbcffde3edfb77908566ff6361cb31bb1175d64bb1958a038720c52748dfa904",
"static/images/blog/announcing-realtime-queries/cover.png": "2e11ad5d30399bced1817ce0edb6d266cc57a70955d2102af173d26461c9bf57",
"static/images/blog/announcing-relationship-queries/cover.png": "7e615c0a9dcbb3949d5fb7ed71f36bb44de40ae67c8cd832b96ff5bbd4b0f451",
"static/images/blog/announcing-rust-runtime/cover.png": "a203fe2ef16c40592813ae7efb3c746d4250e68414c9b7d763893dae264f61d7",
"static/images/blog/announcing-s3-api/cover.png": "ec31c0613b86ea5d249f076056fee1b9fbf6ad69dfcda0a8622aa5e84bd9130c",
"static/images/blog/announcing-screenshots-api/cover.png": "56555006946b9ead5cd4258544b6a9dda44bce6841706749f7539bc31356383e",
"static/images/blog/announcing-self-serve-baa.png": "b66eb0be9b323fb4b28f16218887a463bd1d45f7838c08d6d49e4822a6f95609",
"static/images/blog/announcing-self-serve-baa/enable-baa-modal.png": "b07c61f88fad334847c9c7c918511485fb85d682b2dfde5231f81925bc7475ff",
Expand All @@ -257,7 +258,6 @@
"static/images/blog/anthropic-just-launched-claude-fable-5-and-claude-mythos-5/cover.png": "45721aba1b005e1b02d2b585c69d3e48227bea22b8c7253aaeda2ce67bb79b1d",
"static/images/blog/anthropic-just-launched-claude-for-small-business/cover.png": "9b89a91dab0f56e4d49777ca4a370c558edca339e573c155d6c1838f04a1dbd6",
"static/images/blog/anthropic-just-launched-claude-opus-48-with-fast-mode-and-dynamic-workflows/cover.png": "0fba6f3f51a4fc24f02ac6c14b1f098277bd8a8d3e555c024b3dca0b29d20167",
"static/images/blog/anthropic-launches-free-claude-access-for-us-k-12-teachers/cover.png": "5af971e028a2acca04c08342ab035a422b5eea67367d0a71c33eeedac50f280c",
"static/images/blog/apply-appwrite-how/cover.png": "d23f45ced245b42c8712c021f5d2068c17aebd94fd049cb90222cb9647a41a4a",
"static/images/blog/appwrite-1-8-0-self-hosted-release/cover.png": "c15a9d88ccd16c2dc8333dc74e715e1f4a6c7818d3b4a05f4d68342eacdc0523",
"static/images/blog/appwrite-1-8-1-self-hosted-release/cover.png": "82f0a396c56b6b299b24133079acc6a317c66b2bf02fd91f4862bd3be0f8f373",
Expand Down Expand Up @@ -384,7 +384,6 @@
"static/images/blog/best-free-hosting-platforms-you-probably-havent-tried-in-2026/cover.png": "2f9d3db69fdc1062457abcacb87a962cbf472a2e60acd59e17b84b96aaf90f80",
"static/images/blog/best-free-static-website-hosting/cover.png": "022f31c5c5897d77ccfbfc2149ee81ed6f8a7bbaca91b5c3c09cd2b2e9432450",
"static/images/blog/best-frontend-frameworks-for-vibe-coding/cover.png": "508261b8b8c5e3b27396c4e14e7a093f67c98060106068b8464b1f3f620b6397",
"static/images/blog/best-image-formats-for-websites-in-2026-a-complete-guide/cover.png": "e7190d4b8ebb3929cd3e92c365c3e2b4e95321b6ffce8f27d0082fe61d167eb6",
"static/images/blog/best-ios-android-app-development-platform/cover.png": "68aa7d27a6c8265fc254663fb470f4ae1a436a34b85a0c06faa0776fedcdb2b5",
"static/images/blog/best-pagination-technique/cover.png": "6c1cdf54285c0c181eb08f888d924e64919113d7d2fa85b24c8b5a44bd47e52a",
"static/images/blog/best-pagination-technique/graph.png": "f62bfa341f17178991d50d40e62ff0c928cf2e62da13bd14648fa6d00a07d3b9",
Expand Down Expand Up @@ -708,7 +707,6 @@
"static/images/blog/gpt-5-5-launch/cover.png": "768138556cc8a3c1645ff1c602ea1ac5ba2eb373f8f642d2c023e6380950ec08",
"static/images/blog/gpt-56-is-here-openais-efficient-frontier-model/cover.png": "2156c5047fa2630e148ea0fd5189c4d08579b5c96e92530c4ae45b642acb6589",
"static/images/blog/grok-45-coding-model/cover.png": "b40f87952b940767f393a93a7628f8277119862a3a3ac7b7d40d7ee5679213ff",
"static/images/blog/grok-build-open-source/cover.png": "b6550e801f952ba0446227c7f9295d3e5beb12e5d7f9e62547c5a3ffa78e674f",
"static/images/blog/hacktoberfest-2023.png": "e0521ba26e59dacf91072391f7eb0df0e724457961fec4cb04a4914b31dd0024",
"static/images/blog/hacktoberfest2023-swag.png": "7a0af270f7fe24c53e2497ca59bead84255d2d2e882dd38473b1bc6bb0a22d1f",
"static/images/blog/handle-cors-in-serverless-functions/cover.png": "9db00c07cedfbc97f7c4a1a79d1ce1f0d31adab3ea246935ac9bdc9f47fc1e4c",
Expand Down Expand Up @@ -836,11 +834,6 @@
"static/images/blog/introducing-python-machine-learning-runtime/cover.png": "2976f7c650ab992ade016df1767c8b783da8173f8a3bbe10549fe4d3e4767536",
"static/images/blog/introducing-python-machine-learning-runtime/create-function.png": "0728b8ed66cd81e826d2d0a5b70e9f572d415f995065cf44feed2e22ce50e492",
"static/images/blog/introducing-python-machine-learning-runtime/settings-timeout.png": "84214c72048b9911dfb2b9b40b62dd715f856c01badae58b148066be137fdfb5",
"static/images/blog/june-product-update-react-library-password-strength-baa-and-more/Appwrite_plugin_for_Claude_Code_is_now_in_the_official_Claude_marketplace.jpg": "f8679e1c03a01ccc2a3a1d3709d609ee8dbd9af63e9548cdcc336059457dae3c",
"static/images/blog/june-product-update-react-library-password-strength-baa-and-more/cover.png": "b636e349b4ecc0d569967d449ddb665e3ae1a6ed554224b1a643e4efab18d251",
"static/images/blog/june-product-update-react-library-password-strength-baa-and-more/introducing_self-serve_baa.png": "4d4ed038ee7e94249857342f6d317b31dbb5b44410941fa14f6280e0bc8d938b",
"static/images/blog/june-product-update-react-library-password-strength-baa-and-more/Introducing_the_Appwrite_React_library.png": "f69d9adae872ab44368fd32159ece9daf621cdf002ab78461f7f1d07b66dba73",
"static/images/blog/june-product-update-react-library-password-strength-baa-and-more/Password_Strength.png": "bc6a351aa59b845d6a9513ec4a4993c393b3059c9a7d324c999bea52142d8648",
"static/images/blog/kcollect.png": "d044d69e18de7dd4af75213b7f4cf131529f43875352d7db86fe80c274466242",
"static/images/blog/local-development-guide/localdev-cover.png": "07cce5e779991c560d2e8c58b280803ea8ebcfc8775bcc75e959d76b01409fa7",
"static/images/blog/logo.png": "6df582f74767156f37ced895ebeb6b5a656858301dd09539cbc84157a6a54ed3",
Expand Down Expand Up @@ -1605,6 +1598,45 @@
"static/images/docs/network/edges-map.png": "12ecc1ea200905ba75eb7cfd17055a156fd51fccf746869a1058f923dfd7ac1b",
"static/images/docs/network/pops-map.png": "205ead599703cf47d0df316db8fcc4f48d5eed01508109fc740d17914275e9ab",
"static/images/docs/network/regions-map.png": "c65f1423ab19c3048bf8bf93117e8f2e1d13a2bc705c00307de7ee821e5668a1",
"static/images/docs/oauth-server/dark/diagram-authorization.png": "f11b837ee7ec3088287accaa7e7209e45f08a15706441e32360635d8ddcdf612",
"static/images/docs/oauth-server/dark/diagram-clients.png": "cb33c1f4d3dc37633688fbdde8ea6b4e9bbcf05ae7e9287a31011e9e220bd94f",
"static/images/docs/oauth-server/dark/diagram-device-flow.png": "208a3dc343bfd1c4ea16d64b6b19e8efec363855231b0eaf467de1397bc29a64",
"static/images/docs/oauth-server/dark/diagram-overview.png": "060a1cae43b0e853c215ad28627c68b1dd299c4f33a8150be8071ce7c54c3df0",
"static/images/docs/oauth-server/dark/diagram-scopes.png": "929274c616121ce233ebc8ab33477fd5b59729c66a61dc7f7dc2dab85f323947",
"static/images/docs/oauth-server/dark/diagram-tokens.png": "f406f6eff22b01abb04ab26c4c6aadac5375d0677a906320bca1b327830da14c",
"static/images/docs/oauth-server/dark/oauth2-server-apps-empty.png": "b81617a77c6489bc93cfe3c118c2fd075eebda850fc5803cba4b1b62792269f1",
"static/images/docs/oauth-server/dark/oauth2-server-apps-list.png": "a0b1a9bcc5708bb48f7d4684d754cfc8af8e666f808e11d00fc42182ee7ccf6e",
"static/images/docs/oauth-server/dark/oauth2-server-create-app.png": "7ecd5625aa964ab77b87440e52bc866a4894dffe5183a0e86f7a46b8c438cee7",
"static/images/docs/oauth-server/dark/oauth2-server-discovery.png": "e688439f87c4ae73086b76ee094e036d5bddb14b9431aaad5901d281ab3ca413",
"static/images/docs/oauth-server/dark/oauth2-server-secret-created.png": "d675fe574706d58b224ce823c8904145482472f64ab940a8bb37b92fcc33008e",
"static/images/docs/oauth-server/dark/oauth2-server-settings-disabled.png": "ad51d531eaa3736839859097c024bca41a28d1339ceef773e376c06936e040ee",
"static/images/docs/oauth-server/dark/oauth2-server-settings.png": "18da0340416739f803b8c04d66c191e92e7eafa70cd301acb1e269d8dd5a0c81",
"static/images/docs/oauth-server/dark/oauth2-server-token-lifetimes.png": "46743e2f0a3e8c126d590809668a37c2beb1f1c5483002839d9a15eca9e110d4",
"static/images/docs/oauth-server/dark/scopes-defined.png": "4723658a478b30e4f97372661d4ed7a9ba14d1cc7f0b56d4f5bf6148b5326cf1",
"static/images/docs/oauth-server/diagram-authorization.png": "a0d101a521ebf93fa9163b199f2e7514306b9fec4642c3edb2341b9e354178fe",
"static/images/docs/oauth-server/diagram-clients.png": "25e672a7e303772cdb3808e2fbc7906943f74ff5413ec2d5d1143762c0842a93",
"static/images/docs/oauth-server/diagram-device-flow.png": "f620b3b450ca3b34fc9326cb1b4bd9fc7066e4c912b229c211e1ef30ff77010d",
"static/images/docs/oauth-server/diagram-overview.png": "22384d2a65d4f7f3fd8cb70be63f560e3b15852d0956d82dbef46f150cf4e1c4",
"static/images/docs/oauth-server/diagram-scopes.png": "b0641b382d3f25717aa37f3bb62f5a4f0bf688018be1ecefde0c481dca592ed2",
"static/images/docs/oauth-server/diagram-tokens.png": "193d850fb5c7cc646982eccff82d8bf14612399bfc82988b3e8b167f221f7fea",
"static/images/docs/oauth-server/guide/taskflow-consent.png": "5c4f4cbc6b225c60d5d6e2f1616abe45f0e6b66a5014438961fca98db349bd18",
"static/images/docs/oauth-server/guide/taskflow-login.png": "5d0013b31b211efe4d3a2f6a9f224a5b547d3ef1370e507b9a183bb276fc90e1",
"static/images/docs/oauth-server/guide/vantage-dashboard.png": "b2e95c34ec9c19be090e5f3384e0c3278dd840059b3f015ccdb13a16c135dde1",
"static/images/docs/oauth-server/guide/vantage-landing.png": "dc597717bcc93de02b2e5336a0f05d743ea66e6d91cef40fbdc61f8380577bec",
"static/images/docs/oauth-server/oauth2-server-apps-empty.png": "6f7b5c2021df2db7a3a1c4da3dfcf9b2ff119e98450e755eb64f03263030da0a",
"static/images/docs/oauth-server/oauth2-server-apps-list.png": "e3f38509e45e502f742e7532ae1a19bdd35b0891821b6a81601b7960ff16b38c",
"static/images/docs/oauth-server/oauth2-server-create-app.png": "fafb26a8844e4d792a8105c1da2f4c403df117887eeda0fd1c4ea3384929facd",
"static/images/docs/oauth-server/oauth2-server-discovery.png": "5b75f8e780cac92a68fda24a9686ba89ce83d89ac66e5f651428b4c62bb81cbd",
"static/images/docs/oauth-server/oauth2-server-secret-created.png": "5a6d48595018a8faaa26aeafe099c3dda23613a35e49884decbecb0029449168",
"static/images/docs/oauth-server/oauth2-server-settings-disabled.png": "648091d9d81308ab93dd456f172fa1c1977c2fbce9b8aa03893398bdefe10595",
"static/images/docs/oauth-server/oauth2-server-settings.png": "914aa6511caedb568f199eacef837366c523f78125c551afa992e39098707431",
"static/images/docs/oauth-server/oauth2-server-token-lifetimes.png": "895bf62c7f5171c8f244fda37b516760266c47447f2c66c93c3c812139823b96",
"static/images/docs/oauth-server/scopes-defined.png": "ae1d03cc7cd585f52b6445f5b6506a77f3cb47f50f5677c23e5ff650667942b4",
"static/images/docs/oauth-server/scopes-guide/taskflow-consent-choice.png": "27a8ebf167728a50059bf315bc9676e3c5ec9f32f47eb70ea7c4e4715fadbf99",
"static/images/docs/oauth-server/scopes-guide/taskflow-consent-scopes.png": "ad7975be44e1840e85d994c3a12e19bcbe63e4eec5ba4bec9028c6683db3ae60",
"static/images/docs/oauth-server/scopes-guide/vantage-tasks-dashboard.png": "a621e10d803c25408eafcb0393e934080c4a2fd00e3230ad2a8cab0fbc84d778",
"static/images/docs/oauth-server/scopes-guide/vantage-write-denied.png": "7e2f32309bad509c9920e5725f8b49654e4dbc19699ee6af309b174e955bd2fd",
"static/images/docs/oauth-server/scopes-guide/vantage-write-granted.png": "1565538a08f94180a7ff35df2cad426c962609eeeae021e2fc8c076242882e1e",
"static/images/docs/platform/add-platform.png": "5a05bb9d75a8d5270bfa5e67df7e6de20a9fad174476a112b5bdab72e7bdad30",
"static/images/docs/platform/create-api-key.png": "7661b3845e13704643f8ff4f763faa8e61efb90878c3ffa7466ece0910b8ecab",
"static/images/docs/platform/create-webhook.png": "77e08173da6ac534524e025433cf75e532d853a135944a7c6ba2278357d88b2d",
Expand All @@ -1616,9 +1648,7 @@
"static/images/docs/platform/env-variables.png": "16f95151e4f6ee9fb8056f075b9f5027fd91f0c2a28586c5624c3ffe9b7a1ee8",
"static/images/docs/platform/execution-details.png": "ece1364b8b00254bbd982421b6eed6d7f519d34c4e80377fcaaa4cb5d5dd3f89",
"static/images/docs/project/auth-methods.png": "caa81b517332b06cf539edf25de91a444d8e19ac212d2dd8d75ba14f74933db6",
"static/images/docs/project/create-api-key.png": "7661b3845e13704643f8ff4f763faa8e61efb90878c3ffa7466ece0910b8ecab",
"static/images/docs/project/dark/auth-methods.png": "45421e0c586c5f7dc156e823642ab9667f97950f23ca01ce3b8d993ee49fb820",
"static/images/docs/project/dark/create-api-key.png": "f15696f0b28dfc46813d7185be11da8be89da72be66b1894cfcc7227036e4afa",
"static/images/docs/project/dark/email-templates.png": "8bff7fd71fef2c2a30106ab93dab9daf26ff4ae4b3f1031fb502f2b5cede4a0f",
"static/images/docs/project/dark/labels.png": "b7c5abaa89675ab00356e468bafe159fe690881d9cb01d5eb1fb25c70ffa2d07",
"static/images/docs/project/dark/mock-phones.png": "f26a9cd69f3bc57279cd17109336ea8f55c40f22118b29bd3066afb678ebdf84",
Expand Down
9 changes: 8 additions & 1 deletion src/lib/utils/code.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ import groovy from 'highlight.js/lib/languages/groovy';
import rust from 'highlight.js/lib/languages/rust';
import ini from 'highlight.js/lib/languages/ini';
import dockerfile from 'highlight.js/lib/languages/dockerfile';
import sql from 'highlight.js/lib/languages/sql';
import pgsql from 'highlight.js/lib/languages/pgsql';
import { Platform } from './references';
import { writable } from 'svelte/store';

Expand Down Expand Up @@ -73,7 +75,9 @@ const languages = {
env: ini,
dotenv: ini,
dockerfile: dockerfile,
docker: dockerfile
docker: dockerfile,
sql: sql,
pgsql: pgsql
} as const satisfies Record<string, LanguageFn>;

const platformAliases: Record<string, keyof typeof languages> = {
Expand Down Expand Up @@ -116,6 +120,9 @@ Object.entries(platformAliases).forEach(([key, value]) => {
/** HashiCorp Configuration Language (Terraform); core highlight.js has no HCL grammar */
hljs.registerAliases(['hcl', 'terraform', 'tf'], { languageName: 'ini' });

/** Prisma schema language; core highlight.js has no Prisma grammar, GraphQL is the closest match */
hljs.registerAliases(['prisma'], { languageName: 'graphql' });

export type Language = keyof typeof languages | Platform;

type Args = {
Expand Down
6 changes: 6 additions & 0 deletions src/markdoc/layouts/Post.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@
export let callToAction: BlogCallToActionInput;
export let lastUpdated: string;
export let faqs: { question: string; answer: string }[] | undefined = undefined;
/** Frontmatter `draft: true`: the post stays reachable by its direct URL but is hidden from all listings/feeds and marked noindex. */
export let draft = false;

const posts = getContext<PostsData[]>('posts')?.filter(
(post) => !(post.unlisted ?? false) && !(post.draft ?? false)
Expand Down Expand Up @@ -133,6 +135,10 @@
</script>

<svelte:head>
{#if draft}
<!-- Draft: reachable by direct URL but kept out of search indexes -->
<meta name="robots" content="noindex" />
{/if}
<!-- Titles -->
<title>{resolvedMetaTitle + TITLE_SUFFIX}</title>
<meta property="og:title" content={resolvedMetaTitle} />
Expand Down
Loading
Loading