-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhugo.toml
More file actions
89 lines (75 loc) · 3.27 KB
/
Copy pathhugo.toml
File metadata and controls
89 lines (75 loc) · 3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# hugo.toml - Core configuration for the site builder
#
# Only add settings here that *never* changes.
#
# For site-specific settings, use hugo.site.toml.
# For variant-specific settings, use config.<variant>.toml.
# Directory remapping — Hugo runs from repo root, templates live in unionai-docs-infra/
layoutDir = "unionai-docs-infra/layouts"
archetypeDir = "unionai-docs-infra/archetypes"
themesDir = "unionai-docs-infra/themes"
staticDir = ["unionai-docs-infra/static", "linkmap"]
# CSS and JS live here rather than in static/ so they can be content-hashed
# (DOC-1316). Anything in static/ is copied verbatim and keeps a URL whose bytes
# can change between deploys, which is the whole problem.
assetDir = "unionai-docs-infra/assets"
timeout = "5m"
defaultContentLanguage = 'en-us'
disableKinds = ["RSS"]
enableRobotsTXT = true
enableEmoji = true
# Enable sitemap generation
[outputs]
# 'home': The main site homepage. 'HTML' for the page, 'RSS' for feed readers.
home = ["HTML", "RSS"]
# 'page': Individual content pages. 'HTML' for the page, 'MD' for markdown processing.
page = ["HTML", "MD"]
# 'section': Top-level content sections (e.g., docs, tutorials). 'HTML' for rendering, 'RSS' for section-specific feeds, 'MD' for markdown processing.
section = ["HTML", "RSS", "MD"]
# 'taxonomy': Used for tag/category listing pages. 'HTML' for rendering, 'RSS' for taxonomy feeds.
taxonomy = ["HTML", "RSS"]
# 'robotsTXT': Generate robots.txt file for search engine crawling
robotsTXT = ["ROBOTS"]
[outputFormats]
[outputFormats.MD]
mediaType = "text/plain"
baseName = "index"
path = "tmp-md"
isPlainText = true
[params]
_merge = "deep"
show_inactive = false
highlight_active = false
[markup]
[markup.highlight]
noClasses = false
[markup.goldmark]
[markup.goldmark.parser]
[markup.goldmark.parser.attribute]
block = true
#----------------------------------------------------------
# Search
[params.search]
app_id = "42EK9RXSGL"
search_key = "0c93bb3130c3134de204cd73bf4e51d3"
index_name = "union"
# Ask AI. The agent retrieves from its OWN index (page-level chunks) rather than
# the keyword index (heading-anchor chunks) -- see tools/algolia_indexer/
# build_markdown_records.py for why the chunking differs.
ask_ai_agent_id = "392dfe90-c2e5-4c82-9486-1c0fc55e8666"
ask_ai_index = "union-markdown"
# Ask AI needs a SECOND key, and it cannot be the referrer-restricted one above.
# The agent's retrieval call happens server-side, on Algolia's infrastructure,
# and carries no Referer header at all -- verified in the Algolia request logs.
# A referrer-locked key therefore 403s ("Method not allowed with this referer")
# on every Ask AI question. This is structural, not a misconfiguration: Algolia
# does not forward the browser's Referer, confirmed by sending one explicitly.
#
# So this key is necessarily referer-less. Keep its blast radius small: search
# ACL only, restricted to the ask_ai_index alone, so a scraped copy buys an
# attacker read access to the retrieval index and nothing else -- notably not
# the main `union` index, which keeps its referrer lock.
#
# Ask AI stays OFF until this is set; the partial emits no askAi config without
# it, so search degrades to keyword-only rather than erroring.
ask_ai_key = "868f9f518fd9877f03eaca2b8c942851"