dogsbay 0.2.0-beta.27 → 0.2.0-beta.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -247,6 +247,12 @@ function validateSite(site, sourcePath) {
247
247
  throw new Error(`site.brandKeywords entries must be non-empty strings in ${sourcePath}`);
248
248
  }
249
249
  }
250
+ if (s.noindex !== undefined && typeof s.noindex !== "boolean") {
251
+ throw new Error(`site.noindex must be a boolean in ${sourcePath}; got ${describe(s.noindex)}`);
252
+ }
253
+ if (s.nofollow !== undefined && typeof s.nofollow !== "boolean") {
254
+ throw new Error(`site.nofollow must be a boolean in ${sourcePath}; got ${describe(s.nofollow)}`);
255
+ }
250
256
  if (s.basePath !== undefined) {
251
257
  if (typeof s.basePath !== "string") {
252
258
  throw new Error(`site.basePath must be a string in ${sourcePath}; got ${describe(s.basePath)}`);
@@ -18,6 +18,8 @@ export function configToAstroOptions(config) {
18
18
  editUri: config.site.editUri,
19
19
  copyright: config.site.copyright,
20
20
  brandKeywords: config.site.brandKeywords,
21
+ noindex: config.site.noindex,
22
+ nofollow: config.site.nofollow,
21
23
  theme: config.theme,
22
24
  plausibleDomain: config.analytics?.plausible?.domain,
23
25
  plausibleScriptUrl: config.analytics?.plausible?.scriptUrl,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dogsbay",
3
- "version": "0.2.0-beta.27",
3
+ "version": "0.2.0-beta.28",
4
4
  "description": "CLI for Dogsbay — scaffold, build, and serve documentation sites with markdown / MkDocs / Obsidian / OpenAPI sources",
5
5
  "type": "module",
6
6
  "bin": {
@@ -32,14 +32,14 @@
32
32
  "picocolors": "^1.1.0",
33
33
  "prompts": "^2.4.2",
34
34
  "yaml": "^2.8.3",
35
- "@dogsbay/format-mkdocs": "0.2.0-beta.27",
36
- "@dogsbay/format-obsidian": "0.2.0-beta.27",
37
- "@dogsbay/format-astro": "0.2.0-beta.27",
38
- "@dogsbay/format-mdx": "0.2.0-beta.27",
39
- "@dogsbay/format-starlight": "0.2.0-beta.27",
40
- "@dogsbay/format-dogsbay-md": "0.2.0-beta.27",
41
- "@dogsbay/format-openapi": "0.2.0-beta.27",
42
- "@dogsbay/types": "0.2.0-beta.27"
35
+ "@dogsbay/format-mkdocs": "0.2.0-beta.28",
36
+ "@dogsbay/format-obsidian": "0.2.0-beta.28",
37
+ "@dogsbay/format-mdx": "0.2.0-beta.28",
38
+ "@dogsbay/format-astro": "0.2.0-beta.28",
39
+ "@dogsbay/format-dogsbay-md": "0.2.0-beta.28",
40
+ "@dogsbay/format-openapi": "0.2.0-beta.28",
41
+ "@dogsbay/format-starlight": "0.2.0-beta.28",
42
+ "@dogsbay/types": "0.2.0-beta.28"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^22.0.0",
@@ -21,6 +21,43 @@ content
21
21
  Use `::::` (four colons) when the content itself contains `:::`
22
22
  (e.g., a directive nested inside another).
23
23
 
24
+ ### Nesting: outer fence must be longer
25
+
26
+ When a directive contains another directive, **the outer fence
27
+ must be longer (more colons) than the inner**. Same rule as
28
+ code fences. The parser closes a fence at the first matching
29
+ line of the same-or-shorter length, so an inner `:::` will
30
+ prematurely close a `:::` outer — leaving the rest of the
31
+ content stranded outside the directive.
32
+
33
+ ❌ Wrong — the inner `:::` closes the outer `:::steps`:
34
+
35
+ ```markdown
36
+ :::steps
37
+ 1. Install
38
+ :::warning
39
+ Don't skip this.
40
+ :::
41
+ 2. Configure
42
+ :::
43
+ ```
44
+
45
+ ✅ Right — the four-colon outer survives the three-colon inner:
46
+
47
+ ```markdown
48
+ ::::steps
49
+ 1. Install
50
+ :::warning
51
+ Don't skip this.
52
+ :::
53
+ 2. Configure
54
+ ::::
55
+ ```
56
+
57
+ Add another colon for each level of nesting (`:::::` for a
58
+ directive inside a `::::` outer, and so on). Most pages never
59
+ go past two levels.
60
+
24
61
  ## Callouts
25
62
 
26
63
  Two equivalent forms — pick whichever reads cleaner.