Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
4bbdaec
chore: move Python package into workspace
Aug 13, 2026
a963e61
test: establish shared conformance contract
Aug 13, 2026
b9dff2e
feat: add TypeScript package
Aug 13, 2026
9feb1da
ci: add coordinated package release automation
Aug 13, 2026
26d8e0a
docs: migrate site to Docusaurus
Aug 13, 2026
6902182
feat: make docs language selection site-wide
Aug 13, 2026
d8f6978
docs: complete language-specific guides
Aug 13, 2026
25f60fe
feat: expose versioned documentation
Aug 13, 2026
b4047f8
feat: standardise TypeScript block factory names
Aug 13, 2026
870fbba
docs: improve API reference generation and navigation
Aug 13, 2026
e991480
test: enforce comprehensive conformance coverage
Aug 13, 2026
91c585f
feat: support current Block Kit blocks in Python
Aug 13, 2026
1d3289f
feat: support current Block Kit blocks in TypeScript
Aug 13, 2026
01ea381
docs: bring TypeScript API reference to parity
Aug 13, 2026
3308898
docs: add validated Block Kit previews
Aug 13, 2026
1eb2d44
ci: align monorepo validation
Aug 13, 2026
a188c2c
chore: prepare 2.1.0 release
Aug 13, 2026
517b0b4
docs: add legacy migration contract and tooling
Aug 13, 2026
4cead21
docs: port early 1.0 documentation
Aug 13, 2026
44a6c73
docs: port later 1.0 and 1.1 documentation
Aug 13, 2026
3417038
docs: port 1.2 documentation
Aug 13, 2026
211702c
docs: port 2.0 documentation and version boundaries
Aug 13, 2026
3771f77
docs: harden historical documentation delivery
Aug 13, 2026
4b3f9be
docs: make version selection language-aware
Aug 14, 2026
3136db3
chore: scope TypeScript npm package
Aug 14, 2026
c418f39
ci: give stacked pull requests check runs
Aug 14, 2026
051fb38
Merge branch 'codex/monorepo-foundation' into codex/shared-conformance
Aug 14, 2026
eb11ad6
Merge branch 'codex/shared-conformance' into codex/typescript-package
Aug 14, 2026
024df24
ci: give stacked pull requests check runs
Aug 14, 2026
61927db
Merge branch 'codex/typescript-package' into codex/release-automation
Aug 14, 2026
039edb3
Merge branch 'codex/release-automation' into codex/docusaurus-platform
Aug 14, 2026
46296d4
ci: give stacked pull requests check runs
Aug 14, 2026
dd47942
Merge branch 'codex/docusaurus-platform' into codex/docs-language-nav…
Aug 14, 2026
a1651de
Merge branch 'codex/docs-language-navigation' into codex/docs-guides
Aug 14, 2026
82b2cbc
Merge branch 'codex/docs-guides' into codex/docs-version-history
Aug 14, 2026
9903b2f
Merge branch 'codex/docs-version-history' into codex/typescript-api-n…
Aug 14, 2026
6acc43f
Merge branch 'codex/typescript-api-names' into codex/api-reference-re…
Aug 14, 2026
b3b9673
Merge branch 'codex/api-reference-rendering' into codex/conformance-c…
Aug 14, 2026
b7558fe
Merge branch 'codex/conformance-coverage' into codex/python-current-b…
Aug 14, 2026
2697b87
Merge branch 'codex/python-current-blocks' into codex/typescript-curr…
Aug 14, 2026
f517aaa
Merge branch 'codex/typescript-current-blocks' into codex/typescript-…
Aug 14, 2026
28ca782
Merge branch 'codex/typescript-api-details' into codex/block-guide-pr…
Aug 14, 2026
64b56e3
Merge branch 'codex/block-guide-previews' into codex/ci-validation
Aug 14, 2026
ee4a482
Merge branch 'codex/ci-validation' into codex/release-2-1
Aug 14, 2026
04e2aa7
Merge branch 'codex/release-2-1' into codex/legacy-docs-tooling
Aug 14, 2026
a670184
Merge branch 'codex/legacy-docs-tooling' into codex/legacy-docs-early…
Aug 14, 2026
275dbd0
Merge branch 'codex/legacy-docs-early-1-0' into codex/legacy-docs-lat…
Aug 14, 2026
313c8e7
Merge branch 'codex/legacy-docs-late-1-x' into codex/legacy-docs-1-2
Aug 14, 2026
c8fd6a8
Merge branch 'codex/legacy-docs-1-2' into codex/legacy-docs-2-0
Aug 14, 2026
67cc7d5
Merge branch 'codex/legacy-docs-2-0' into codex/legacy-docs-hardening
Aug 14, 2026
d8f7eb0
Merge branch 'codex/legacy-docs-hardening' into codex/scoped-npm-package
Aug 14, 2026
0ca171c
fix(docs): repair legacy converter fidelity and regenerate snapshots
Aug 14, 2026
b68deee
feat(docs): future-proof legacy contract and noindex historical versions
Aug 14, 2026
1b8b1f6
chore(docs): run the legacy fixture determinism check in the docs build
Aug 14, 2026
a2ade10
docs: add legacy snapshot recovery runbook
Aug 14, 2026
c536e30
Merge branch 'codex/legacy-docs-hardening' into codex/scoped-npm-package
Aug 14, 2026
dd6d270
fix: stop type overrides, drop nulls, and copy metadata payloads verb…
Aug 14, 2026
332c35d
refactor!: rename RangeError to OutOfRangeError
Aug 14, 2026
1ef7995
feat: validate required fields, tables, and code points in raw payloads
Aug 14, 2026
0284d9d
refactor: source composition limits from the shared registry
Aug 14, 2026
8761ef3
feat!: tighten factory input types and required fields
Aug 14, 2026
70acc71
feat: validate attachment colors and mirror Python collection omission
Aug 14, 2026
c97f6e1
test: cover serialization, validation, and parity fixes
Aug 14, 2026
49c3a8f
feat: add validate_type helper for single-valued object fields
Aug 14, 2026
aeffa2f
feat: validate new context-actions elements and element limits
Aug 14, 2026
793c201
fix: render chart composition objects as JSON in repr
Aug 14, 2026
9922908
feat: validate object fields on new blocks and allow timepicker input
Aug 14, 2026
daf6a9c
feat: export public type aliases and declare spec version
Aug 14, 2026
7ef19d0
docs: document 2.1.0 behaviour changes in changelog
Aug 14, 2026
e179d31
feat(spec): release 1.0.1 with docs-verified limits and boundary corpus
Aug 14, 2026
c0112c8
test(conformance): build fixtures generatively and enforce coverage r…
Aug 14, 2026
aa4a9f1
docs(spec): describe the actual skiplist, limits, and divergence poli…
Aug 14, 2026
c27e5ae
fix: read spec files as UTF-8 regardless of platform locale
Aug 14, 2026
f698cbf
fix(ci): smoke-test built distributions instead of the source tree
Aug 14, 2026
30b46d2
fix(release): guard, pin, and harden the publish workflows
Aug 14, 2026
71c4131
fix(ci): cover missed trigger paths in unit-tests and docs workflows
Aug 14, 2026
a8a12d7
chore: remove unused Changesets configuration
Aug 14, 2026
6bdd607
docs: document the coordinated release process
Aug 14, 2026
92c3d81
docs: pin every using-blocks example to executed output
Aug 14, 2026
fca4624
docs: fix language selection side effects
Aug 14, 2026
8fd1152
docs: return the compatibility page to the Python sidebar
Aug 14, 2026
0b77046
docs: harden the Python reference generator
Aug 14, 2026
dfe3395
docs: pin the API-reference toolchain exactly
Aug 14, 2026
6bf4885
fix: reconcile guide harnesses with the stricter API surface
Aug 14, 2026
3ed2f01
fix: format the reference generator and read guides as UTF-8
Aug 14, 2026
49518b7
Merge remote-tracking branch 'origin/master' into codex/fix-docs
Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 71 additions & 63 deletions docs/docs/usage/using_blocks.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -129,15 +129,15 @@ RichTextBlock(
RichTextSection(
[
RichText(
"You 'bout to witness hip-hop in its most purest",
"You 'bout to witness hip-hop in its most purest\n",
bold=True,
),
RichText(
"Most rawest form, flow almost flawless",
"Most rawest form, flow almost flawless\n",
strike=True,
),
RichText(
"Most hardest, most honest known artist",
"Most hardest, most honest known artist\n",
italic=True,
),
]
Expand Down Expand Up @@ -229,17 +229,19 @@ from slackblocks import HeaderBlock

HeaderBlock(
"This is a header block",
block_id="fake_block_id",
)
```

</Python>
<TypeScript>

```ts
import { headerBlock, plainText } from "@nicklambourne/slackblocks";
import { headerBlock } from "@nicklambourne/slackblocks";

headerBlock({
text: plainText("This is a header block", { emoji: true }),
text: "This is a header block",
blockId: "fake_block_id",
});
```

Expand All @@ -252,10 +254,10 @@ headerBlock({
```json
{
"type": "header",
"block_id": "fake_block_id",
"text": {
"type": "plain_text",
"text": "This is a header block",
"emoji": true
"text": "This is a header block"
}
}
```
Expand Down Expand Up @@ -288,6 +290,7 @@ from slackblocks import MarkdownBlock

MarkdownBlock(
text="**Hello!** Markdown blocks support _GitHub-flavored_ syntax.",
block_id="fake_block_id",
)
```

Expand All @@ -299,6 +302,7 @@ import { markdownBlock } from "@nicklambourne/slackblocks";

markdownBlock({
text: "**Hello!** Markdown blocks support _GitHub-flavored_ syntax.",
blockId: "fake_block_id",
});
```

Expand All @@ -311,6 +315,7 @@ markdownBlock({
```json
{
"type": "markdown",
"block_id": "fake_block_id",
"text": "**Hello!** Markdown blocks support _GitHub-flavored_ syntax."
}
```
Expand Down Expand Up @@ -471,7 +476,7 @@ inputBlock({
```python
from slackblocks import DividerBlock

DividerBlock()
DividerBlock(block_id="fake_block_id")
```

</Python>
Expand All @@ -480,7 +485,7 @@ DividerBlock()
```ts
import { dividerBlock } from "@nicklambourne/slackblocks";

dividerBlock();
dividerBlock({ blockId: "fake_block_id" });
```

</TypeScript>
Expand All @@ -491,7 +496,8 @@ dividerBlock();

```json
{
"type": "divider"
"type": "divider",
"block_id": "fake_block_id"
}
```

Expand Down Expand Up @@ -752,6 +758,7 @@ from slackblocks import (
)

TableBlock(
block_id="fake_block_id",
column_settings=[
ColumnSettings(align="right", is_wrapped=True),
ColumnSettings(align="left"),
Expand Down Expand Up @@ -795,6 +802,7 @@ import {
} from "@nicklambourne/slackblocks";

tableBlock({
blockId: "fake_block_id",
columnSettings: [
columnSettings({ align: "right", isWrapped: true }),
columnSettings({ align: "left" }),
Expand Down Expand Up @@ -828,77 +836,74 @@ tableBlock({

```json
{
"blocks": [
{
"type": "table",
"rows": [
[
{
"type": "rich_text",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "Header 1",
"style": {
"bold": true
}
}
]
}
]
},
"type": "table",
"block_id": "fake_block_id",
"rows": [
[
{
"type": "rich_text",
"elements": [
{
"type": "rich_text",
"type": "rich_text_section",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "Header 2",
"style": {
"bold": true
}
}
]
"type": "text",
"text": "Header 1",
"style": {
"bold": true
}
}
]
}
],
[
]
},
{
"type": "rich_text",
"elements": [
{
"type": "rich_text",
"type": "rich_text_section",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "Datum 1"
}
]
"type": "text",
"text": "Header 2",
"style": {
"bold": true
}
}
]
},
}
]
}
],
[
{
"type": "raw_text",
"text": "Datum 1"
},
{
"type": "rich_text",
"elements": [
{
"type": "rich_text",
"type": "rich_text_section",
"elements": [
{
"type": "rich_text_section",
"elements": [
{
"type": "text",
"text": "Datum 2"
}
]
"type": "link",
"url": "https://slack.com",
"text": "Datum 2"
}
]
}
]
]
}
]
],
"column_settings": [
{
"align": "right",
"is_wrapped": true
},
{
"align": "left"
}
]
}
Expand Down Expand Up @@ -932,6 +937,7 @@ from slackblocks import VideoBlock

VideoBlock(
alt_text="How to use slackblocks",
block_id="fake_block_id",
thumbnail_url="https://example.com/thumb.png",
title="Getting Started",
video_url="https://example.com/video.mp4",
Expand All @@ -950,6 +956,7 @@ import { videoBlock } from "@nicklambourne/slackblocks";

videoBlock({
altText: "How to use slackblocks",
blockId: "fake_block_id",
thumbnailUrl: "https://example.com/thumb.png",
title: "Getting Started",
videoUrl: "https://example.com/video.mp4",
Expand All @@ -969,6 +976,7 @@ videoBlock({
```json
{
"type": "video",
"block_id": "fake_block_id",
"alt_text": "How to use slackblocks",
"thumbnail_url": "https://example.com/thumb.png",
"title": {
Expand Down
11 changes: 10 additions & 1 deletion docs/docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,15 @@ const config: Config = {
trailingSlash: false,
onBrokenLinks: "throw",
onBrokenAnchors: "throw",
headTags: [
// Language switching needs JavaScript; without it, show both languages'
// content instead of leaving the non-default language unreachable.
{
tagName: "noscript",
attributes: {},
innerHTML: "<style>[data-language-content][hidden]{display:block;}</style>",
},
],
markdown: {
format: "detect",
hooks: {
Expand Down Expand Up @@ -312,7 +321,7 @@ const config: Config = {
},
colorMode: {
defaultMode: "light",
respectPrefersColorScheme: false,
respectPrefersColorScheme: true,
},
footer: {
style: "light",
Expand Down
6 changes: 4 additions & 2 deletions docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@
"@docusaurus/theme-common": "^3.10.2",
"@docusaurus/types": "^3.10.2",
"@easyops-cn/docusaurus-search-local": "^0.55.3",
"docusaurus-plugin-typedoc": "^1.4.2",
"docusaurus-plugin-typedoc": "1.4.2",
"prism-react-renderer": "^2.4.1",
"raw-loader": "^4.0.2",
"@nicklambourne/slackblocks": "workspace:*",
"typedoc-plugin-markdown": "^4.12.0"
"typedoc": "0.28.20",
"typedoc-docusaurus-theme": "1.4.2",
"typedoc-plugin-markdown": "4.12.0"
},
"devDependencies": {
"@docusaurus/tsconfig": "^3.10.2",
Expand Down
Loading