-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.toml
More file actions
370 lines (297 loc) · 12.5 KB
/
config.toml
File metadata and controls
370 lines (297 loc) · 12.5 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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
# The URL the site will be built for
base_url = "https://policypress.sc2.in"
title = "PolicyPress"
description = "PolicyPress is a Zola and Doks based theme helping you build modern policy websites."
# The default language; used in feeds and search index
# Note: the search index doesn't support Chinese/Japanese/Korean Languages
default_language = "en"
# Whether to automatically compile all Sass files in the sass directory
compile_sass = true
# When set to "true", the generated HTML files are minified.
minify_html = false
# Whether to generate a feed file for the site
generate_feeds = true
# For overriding the default output directory `public`, set it to another value (e.g.: "docs")
output_dir = "public"
# When set to "true", a search index is built from the pages and section
# content for `default_language`.
build_search_index = true
# When set to "false", Sitemap.xml is not generated
generate_sitemap = true
# When set to "false", robots.txt is not generated
generate_robots_txt = true
# A list of glob patterns specifying asset files to ignore when the content
# directory is processed. Defaults to none, which means that all asset files are
# copied over to the `public` directory.
# Example:
# ignored_content = ["*.{graphml,xlsx}", "temp.*", "**/build_folder"]
# ignored_content = []
# When set to "all", paginated pages are not a part of the sitemap, default is "none"
exclude_paginated_pages_in_sitemap = "none"
# The filenames to use for the feeds. Used as the template filenames, too.
# Defaults to ["atom.xml"], which has a built-in template that renders an Atom 1.0 feed.
# There is also a built-in template "rss.xml" that renders an RSS 2.0 feed.
feed_filenames = ["atom.xml"]
# The number of articles to include in the feed. All items are included if
# this limit is not set (the default).
# feed_limit = 20
# When set to "true", files in the `static` directory are hard-linked. Useful for large
# static files. Note that for this to work, both `static` and the
# output directory need to be on the same filesystem. Note that the theme's `static`
# files are always copied, regardless of this setting.
hard_link_static = false
# The default author for pages
author = "PolicyPress"
[[taxonomies]]
name = "tags"
feed = true
render = false
[[taxonomies]]
name = "TSC2017"
feed = true
render = true
[[taxonomies]]
name = "ISO27001"
feed = false
render = false
[[taxonomies]]
name = "SCF"
feed = false
render = false
# Configuration of the Markdown rendering
[markdown]
# When set to "true", emoji aliases translated to their corresponding
# Unicode emoji equivalent in the rendered Markdown files. (e.g.: :smile: => 😄)
render_emoji = false
# CSS class to add to external links (e.g. "external-link")
# external_links_class =
# Whether external links are to be opened in a new tab
# If this is true, a `rel="noopener"` will always automatically be added for security reasons
external_links_target_blank = false
# Whether to set rel="nofollow" for all external links
external_links_no_follow = false
# Whether to set rel="noreferrer" for all external links
external_links_no_referrer = false
# Whether to set rel="external" for all external links
external_links_external = true
# Whether smart punctuation is enabled (changing quotes, dashes, dots in their typographic form)
# For example, `...` into `…`, `"quote"` into `“curly”` etc
smart_punctuation = true
# Whether parsing of definition lists is enabled
definition_list = true
# Whether to set decoding="async" and loading="lazy" for all images
# When turned on, the alt text must be plain text.
# For example, `` is ok but `` isn’t ok
lazy_async_image = true
# Whether footnotes are rendered in the GitHub-style (at the bottom, with back references) or plain (in the place, where they are defined)
bottom_footnotes = true
# When set to "true", support for GitHub-style alerts, a.k.a. callouts or admonitions, is enabled in the Markdown parser.
# For example, this Markdown syntax:
#
# > [!NOTE]
# > alert note
#
# will result in the following generated HTML:
#
# <blockquote class="markdown-alert-note">
# <p>alert note</p>
# </blockquote>
#
# where the CSS class name suffix may be `note`, `tip`, `important`, `warning`, or `caution`, depending on the alert type.
# Visual appearance depends on theme-level support; refer to your theme's documentation for more information.
github_alerts = true
# This determines whether to insert a link for each header like the ones you can see on this site if you hover over
# a header.
# The default template can be overridden by creating an `anchor-link.html` file in the `templates` directory.
# This value can be "left", "right", "heading" or "none".
# "heading" means the full heading becomes the text of the anchor.
# See "Internal links & deep linking" in the documentation for more information.
insert_anchor_links = "right"
# Syntax highlighting - uses Zola's built-in Giallo engine (Zola 0.22+).
# Inline styles baked into HTML; no extra CSS file needed.
# Available themes: github-light, github-dark, dracula, nord, catppuccin-mocha, etc.
[markdown.highlighting]
theme = "github-dark"
[search]
# Whether to include the title of the page/section in the index
include_title = true
# Whether to include the description of the page/section in the index
include_description = true
# Whether to include the rendered content of the page/section in the index
include_content = true
[extra]
homepage_style = "marketing"
version = "1.2.6"
# release = "https://api.github.com/repos/getzola/zola/releases/latest"
favicon = "https://www.getzola.org/favicon.ico"
easydocs_logo_always_clickable = true
# Set HTML file language
language_code = "en-US"
# Set theme-color meta tag for Chrome browser
theme_color = "#fff"
# More about site's title
title_separator = "|" # set as |, -, _, etc
title_addition = "PolicyPress"
# Set date format in blog publish metadata
timeformat = "%B %e, %Y" # e.g. April 18, 2026
timezone = "UTC"
# Edit page on reposity or not
edit_page = false
docs_repo = "https://github.com/sc2in/PolicyPress"
repo_branch = "main"
## Math settings
# options: true, false. Enable math support globally,
# default: false. You can always enable math on a per page.
math = false
library = "katex" # options: "katex", "mathjax". default is "katex".
# PolicyPress configuration
[extra.policypress]
# Set to true to render a black redaction bar over {% redact() %}...{% end %} blocks on the website.
# Does not affect PDF generation - use --redact flag on the CLI for PDF redaction.
redact_web = true
show_draft_pdfs = true
policy_dir = "policies/"
policy_root = "policies/_index.md"
scf_report_page = "@/reports/scf.md"
soc2_report_page = "@/reports/soc2.md"
organization = "PolicyPress"
logo = "logo.png"
pdf_color = "#0e90f3"
lead = "Security Policy Center for Our Business"
# scf_controls = "data/scf.yml" # optional: override default SCF control data path
# tsc2017_controls = "data/tsc2017.yml" # optional: override default TSC2017 control data path
[extra.menu]
# # Additional configuration
# version = "2.0.0"
logo = "/logo.svg"
# Enhanced menu with icons
[[extra.menu.main]]
title = "Policies"
section = "policies"
url = "/policies/"
icon = "fas fa-file-alt"
weight = 10
[[extra.menu.main]]
title = "Team"
section = "team"
url = "/team/"
icon = "fas fa-users"
weight = 20
[[extra.menu.main]]
title = "News"
section = "news"
url = "/news/"
icon = "fas fa-newspaper"
weight = 30
[extra.policyteam]
[[extra.policyteam.members]]
name = "Alice Beuler"
title = "Chief Security Officer"
email = "abeuler@sc2.in"
phone = "+91 123 456 7890"
image = "logo.svg"
page = "team/abeuler.md"
# Homepage configuration
[extra.frontpage]
[extra.frontpage.hero]
title = "Policies in Git. Audit-ready PDFs on every push."
subtitle = "PolicyPress turns Markdown policies into a branded site and versioned PDFs - built for small and mid-size orgs that need auditor-friendly compliance without heavyweight GRC tooling."
[extra.frontpage.cta]
text = "Explore Policies"
url = "/policies/"
[extra.frontpage.secondary_cta]
text = "Get the Template"
url = "https://github.com/sc2in/policypress-template"
[extra.frontpage.features]
title = "Everything your auditor needs. Nothing you don't."
subtitle = "PolicyPress is a static site generator for security policies - Git-native, PDF-first, and built for compliance without the overhead."
[[extra.frontpage.features.cards]]
icon = "fas fa-code-branch"
title = "Markdown in Git"
description = "Write policies as Markdown files. Version history, PR reviews, and branch protection come free from your existing GitHub workflow."
link = { url = "/guides/writing-policies/", text = "Authoring Guide" }
[[extra.frontpage.features.cards]]
icon = "fas fa-file-pdf"
title = "Versioned PDFs"
description = "Every policy gets a PDF named by title and version, auto-generated on every build - ready to hand to auditors without manual export steps."
link = { url = "/guides/building-pdfs/", text = "PDF Guide" }
[[extra.frontpage.features.cards]]
icon = "fas fa-eye-slash"
title = "Draft & Redaction"
description = "Mark content as draft to watermark it, or wrap sensitive notes in redact blocks so internal text never appears in published output."
link = { url = "/policies/policypress-feature-showcase/", text = "See it in action" }
[[extra.frontpage.features.cards]]
icon = "fas fa-clipboard-check"
title = "Compliance Mapping"
description = "Tag policies with compliance framework controls. PolicyPress generates coverage reports automatically - no spreadsheet maintenance required."
link = { url = "/reports/", text = "View Reports" }
[extra.frontpage.quick_actions]
title = "Get Started"
subtitle = "Deploy your own policy site or explore what PolicyPress can do"
[[extra.frontpage.quick_actions.actions]]
icon = "fas fa-rocket"
title = "Try PolicyPress"
description = "Deploy your own policy site in minutes using the template repo."
button = { text = "Use the Template", url = "https://github.com/sc2in/policypress-template" }
[[extra.frontpage.quick_actions.actions]]
icon = "fas fa-book-open"
title = "Read the Guides"
description = "Learn how to author policies, generate PDFs, and configure compliance mappings."
button = { text = "Open Guides", url = "/guides/" }
[[extra.frontpage.quick_actions.actions]]
icon = "fas fa-exclamation-triangle"
title = "Report an Incident"
description = "Report security incidents or policy violations immediately."
button = { text = "Report Incident", url = "mailto:security@sc2.in" }
# Optional statistics
[[extra.frontpage.statistics]]
number = "Git-native"
label = "No SaaS lock-in"
[[extra.frontpage.statistics]]
number = "PDF + web"
label = "Single source"
[[extra.frontpage.statistics]]
number = "Framework-ready"
label = "Control mapping"
## Open Graph + Twitter Cards
[extra.open]
enable = true
# this image will be used as fallback if a page has no image of its own
image = "logo.png"
twitter_site = "sc2in"
twitter_creator = "sc2in"
facebook_author = "sc2in"
facebook_publisher = "sc2in"
og_locale = "en_US"
## JSON-LD
[extra.schema]
type = "Organization"
logo = "logo.png"
twitter = "https://twitter.com/sc2in"
linked_in = "sc2in"
github = "https://github.com/sc2in"
section = "policies" # see config.extra.main~url
## Sitelinks Search Box
site_links_search_box = true
[[extra.menu.social]]
name = "Facebook"
pre = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-facebook"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>'
url = "https://www.facebook.com/sc2in"
weight = 10
[[extra.menu.social]]
name = "GitHub"
pre = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg>'
url = "https://github.com/sc2in/PolicyPress"
post = "v0.1.6"
weight = 20
# Footer contents
[extra.footer]
info = 'Powered by <a href="https://github.com/sc2in/PolicyPress">PolicyPress</a>'
[[extra.footer.nav]]
name = "Privacy"
url = "/policies/privacy/"
weight = 10
[[extra.footer.nav]]
name = "Acceptable Use"
url = "/policies/acceptable-use/"
weight = 20