In SilverBullet every page or document has a name. Names are (currently) unique, meaning no two pages or documents can share the same name.
Rules
Names must also follow certain rules:
- Names cannot be empty
- Names cannot start with a
.,^nor/
- Names cannot contain the characters
|,@or# - Names cannot contain the sequences
[[or]] - Names cannot contain one or two
.enclosed by a combination of the start/end of the name or/ - Names cannot contain
// - Names cannot end in
.md(See Paths > Relation to names section)
- (Names are case-sensitive and contrary to most filesystem,
/is allowed)
Valid Examples
- “foo”
- “this/is/a/page/name”
- “this/…/is/also/a/page”
- “this/is/a/document.png”
Invalid Examples
- “foo@bar”
- “.foo”
- “foo//bar”
- “foo/../bar”
Special characters
Certain HTTP reverse proxies may block “suspicious” characters (such as ?, # and ;) by default, including Traefik, see this thread on how to work around this.
Naming conventions
Beyond the hard rules above, there is a widely-used stylistic convention for everyday content pages:
- Use Title Case with spaces: name a page as you’d write it in prose:
Customer Persona,Release Process— notcustomer-persona,release_process, orCustomerPersona. The page name doubles as its title and as inline link text, so a readable name reads well in context:see [[Release Process]]. - Keep the namespace flat by default: place most pages at the top level and reach for folders only once a clear grouping earns it. See Best Practices > Flat name space for the rationale.
These are conventions, not enforced rules — your space is yours to organise however suits you.