Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
206 changes: 117 additions & 89 deletions .github/styles/UmbracoDocs/Acronyms.yml
Original file line number Diff line number Diff line change
@@ -1,95 +1,123 @@
---
extends: conditional
message: "'%s' has no definition"
level: error
message: "'%s' has no definition."
description: >
Ensures that all acronyms used in the documentation are clearly defined.
link: https://docs.umbraco.com/contributing/documentation/style-guide#acronyms
scope: text
level: error
ignorecase: false
# Ensures that the existence of 'first' implies the existence of 'second'.
# Require leading whitespace to avoid matching on URL substrings eg https://www.youtube.com/embed/OUD-PbWESAs?rel=0
# If an uppercase acronym of 3-5 letters is found (first),
# require a definition (second) somewhere nearby.
first: '\b([A-Z]{3,5})\b'
second: '([A-Z]{3,5}): (?:\b[A-Z][a-z]+ )+|(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)'
# ... with the exception of these:
# ... with the exception of these. Sorted alphabetically for easier maintenance.
exceptions:
- ABC
- ADD
- ALT
- HTML
- JSON
- CSS
- API
- URL
- UDI
- URI
- NET
- MVC
- GET
- ASP
- ADO
- REST
- HTTP
- HTTPS
- CURL
- BASE
- UDA
- CLI
- KUDU
- XML
- PATH
- SQL
- SHIFT
- POST
- GUID
- UWP
- HAL
- LINK
- DLL
- CMS
- ONLY
- IIS
- DNS
- DOM
- XSLT
- AJAX
- YAML
- PNG
- ISO
- PDF
- DXP
- FAQ
- DIBS
- VAT
- SKU
- UTC
- HEX
- RGBA
- IDE
- CPU
- RAM
- CNAME
- AAAA
- TXT
- PUT
- DELETE
- ZIP
- CTRL
- SPACE
- ENTER
- VIP
- DEBUG
- INFO
- TEMP
- GIF
- GDPR
- NPM
- SVG
- DHL
- UUI
- MDN
- JPG
- JPEG
- BCC
- SSD
- ASCII
- CMD
- NGINX
- SDK
- SMTP
- AAAA # IPv6 address record (DNS)
- ADD #
- ADO # ActiveX Data Objects
- AJAX # Asynchronous JavaScript and XML
- ALT # Alternative text (images)
- API # Application Programming Interface
- ASCII # American Standard Code for Information Interchange
- ASP # Active Server Pages
- BCC # Blind Carbon Copy (email)
- CD # Continuous Delivery
- CDN # Content Delivery Network
- CI # Continuous Integration
- CLI # Command Line Interface
- CMD # Command (Windows shell)
- CMS # Content Management System
- CPU # Central Processing Unit
- CSS # Cascading Style Sheets
- CTRL # Control (Keyboard key)
- CURL # Client URL
- DELETE # HTTP DELETE method
- DHL # International Shipping brand
- DIBS # DIBS by Nets
- DNS # Domain Name System
- DOM # Document Object Model
- DXP # Digital Experience Platform
- EOL # End of Life
- FAQ # Frequently Asked Questions
- FTP # File Transfer Protocol
- GDPR # General Data Protection Regulation
- GET # HTTP GET method
- GIF # Graphics Interchange Format
- GUI # Graphical user interface
- GUID # Globally Unique Identifier
- HAL # Hypertext Application Language
- HASH # Cryptographic hash
- HEX # Hexadecimal
- HTML # HyperText Markup Language
- HTTP # HyperText Transfer Protocol
- HTTPS # HyperText Transfer Protocol Secure
- IaaS # Infrastructure as a Service
- IDE # Integrated Development Environment
- IIS # Internet Information Services
- INFO # Information
- ISO # International Organization for Standardization
- JPG # Joint Photographic Experts Group
- JPEG # Joint Photographic Experts Group
- JSON # JavaScript Object Notation
- JSONP # JSON with Padding
- JS # JavaScript
- JWT # JSON Web Token
- KUDU # Azure deployment engine
- LDAP # Lightweight Directory Access Protocol
- LINK #
- MIT # Open-source software license developed at the Massachusetts Institute of Technology (MIT)
- MDN # Mozilla Developer Network
- MFA # Multi-factor Authentication
- MVC # Model-View-Controller
- NET # .NET Framework
- NGINX # Engine X (web server)
- NPM # Node Package Manager
- OAuth # Open Authorization
- ONLY #
- ORM # Object-Relational Mapping
- PaaS # Platform as a Service
- PATH # file system path
- PDF # Portable Document Format
- PNG # Portable Network Graphics
- POST # HTTP POST method
- PUT # HTTP PUT method
- RAM # Random Access Memory
- REST # Representational State Transfer
- RGBA # Red Green Blue Alpha (color model)
- RPG # Role-Playing Game
- RTX # Ray Tracing Texel eXtreme (NVIDIA tech)
- SaaS # Software as a Service
- SDK # Software Development Kit
- SEO # Search Engine Optimization
- SHIFT # Keyboard key
- SPACE # Keyboard key
- SKU # Stock Keeping Unit
- SMTP # Simple Mail Transfer Protocol
- SQL # Structured Query Language
- SSD # Solid State Drive
- SSL # Secure Sockets Layer
- SVG # Scalable Vector Graphics
- TCP # Transmission Control Protocol
- TEMP # Temporary
- TS # TypeScript
- TXT # Text (file format)
- TLS # Transport Layer Security
- UDA # Files for Umbraco project's metadata
- UDI # Unique Device Identifier
- UI # User Interface
- URI # Uniform Resource Identifier
- URL # Uniform Resource Locator
- UTC # Coordinated Universal Time
- UUID # Universally Unique Identifier
- UWP # Universal Windows Platform
- UX # User Experience
- VAL #
- VAT # Value-Added Tax
- VIP # Very Important Person
- WYSIWYG # What You See Is What You Get
- XML # Extensible Markup Language
- XSLT # Extensible Stylesheet Language Transformations
- XSS # Cross-Site Scripting
- YAML # YAML file
- ZIP # ZIP file format
36 changes: 27 additions & 9 deletions .github/styles/UmbracoDocs/Brands.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,31 @@
---
extends: substitution
message: "We prefer %s over '%s.'"
message: "Use '%s' instead of '%s' for brand consistency."
description: >
Ensures consistent capitalization of brand and product names.
This rule ignores matches inside markdown links and inline code to prevent false warnings.
link: https://docs.umbraco.com/contributing/documentation/style-guide#brands
level: warning
scope: text
ignorecase: true
# Sorted alphabetically for easier maintenance.
swap:
'(?<![\.\/])youtube': "'YouTube'"
microsoft: "'Microsoft'"
slack: "'Slack'"
azure: "'Azure'"
gitbook: "'GitBook'"
Gitbook: "'GitBook'"
github: "'GitHub'"
Github: "'GitHub'"
# Use negative lookbehind to ignore matches inside markdown links `[text](link)` or inline code `code`
'(?<![\[`(])\bazure\b(?![.\w/-]*\))': "Azure"
'(?<![\[`])\bazure devops\b': "Azure DevOps"
'(?<![\[`])\bchrome\b': "Chrome"
'(?<![\[`])\bcloudflare\b': "Cloudflare"
'(?<![\[`])\bfirefox\b': "Firefox"
'(?<![\[`\/\.])\bgitbook\b': "GitBook"
'(?<![\[`])\bgithub\b': "GitHub"
'(?<![\[`])\bmacos\b': "macOS"
'(?<![\[`(])\bmicrosoft\b(?![.\w/-]*\))': "Microsoft"
'(?<![\[`])\bnginx\b': "NGINX"
'(?<![\[`])\bsafari\b': "Safari"
'(?<![\[`])\bslack\b': "Slack"
'(?<![\[`])\btwitter\b': "Twitter"
'(?<![\[`])\bumbraco id\b': "Umbraco ID"
'(?<![\[`])\bumbraco support\b': "Umbraco Support"
'(?<![\[`])\bvisual studio code\b': "Visual Studio Code"
'(?<![\[`])\bvs code\b': "Visual Studio Code"
'(?<![\[`])\byoutube\b(?![-\.\/])': "YouTube"
14 changes: 10 additions & 4 deletions .github/styles/UmbracoDocs/Editorializing.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
---
---
extends: existence
message: "Consider removing '%s'"
ignorecase: true
message: "Consider removing '%s' as it can be considered opinionated."
description: >
Flags words and phrases that express opinion, exaggeration, or assumptions. These can make documentation feel biased, subjective, or unclear.
link: https://docs.umbraco.com/contributing/documentation/style-guide#avoid-punctuation-in-headings
level: warning
ignorecase: true
# Sorted alphabetically for easier maintenance.
# Uses regex patterns with \b for whole word matching.
# The pattern for 'simple' excludes common technical terms to reduce false positives.
tokens:
- actually
- aptly
Expand Down Expand Up @@ -37,7 +43,7 @@ tokens:
- remarkably
- several
- significantly
- simple
- '\bsimple\b(?! (Mail|Message|Object|Protocol|Transfer|Markup))'
- simply
- substantially
- surprisingly
Expand Down
8 changes: 5 additions & 3 deletions .github/styles/UmbracoDocs/HeadingsPunctuation.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
---
extends: existence
message: Do not use '%s' at the end of headings
link: https://github.com/cockroachdb/docs/blob/master/STYLE.md#capitalization-and-punctuation
message: "Do not use '%s' at the end of heading."
description: >
Checks headings to ensure they do not end with punctuation.
link: https://docs.umbraco.com/contributing/documentation/style-guide#avoid-punctuation-in-headings
scope: heading
level: warning
raw:
- '(?:\:|\.)$'
- '(?:[.:;!…])$'
11 changes: 11 additions & 0 deletions .github/styles/UmbracoDocs/LinkTextClarity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
extends: existence
message: "Avoid generic link text like '%s'. Use descriptive link text instead."
description: >
Descriptive link text improves accessibility and SEO.
level: warning
tokens:
- 'click here'
- 'read more'
- 'more info'
- '\bhere\b'
12 changes: 8 additions & 4 deletions .github/styles/UmbracoDocs/ListStart.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
---
extends: existence
message: "Start each option with a capital letter."
link: https://github.com/testthedocs/vale-styles/blob/master/OpenStack/ListStart.yml
level: warning
message: "List items should start with a capital letter, unless they begin with an inline code or a URL."
description: >
Ensures that each list item starts with a capital letter,
unless the item begins with inline code or a URL.
link: https://docs.umbraco.com/contributing/documentation/style-guide#use-lists-when-listing-more-than-2-items-steps
scope: list
level: warning
nonword: true
tokens:
- '^[a-z].+'
- '^(?!\[|_)[a-z].+'
27 changes: 16 additions & 11 deletions .github/styles/UmbracoDocs/Names.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
---
extends: substitution
message: "We prefer %s over '%s'"
message: "Use '%s' instead of '%s' for consistency."
description: >
Ensures consistent capitalization and formatting of common terms and acronyms.
link: https://docs.umbraco.com/contributing/documentation/style-guide#names
level: warning
scope: paragraph
swap:
'(?:(?<!\.)css)': CSS
'(?:(?<!\.)[hH]tml)': HTML
"url(?!=)": "'URL'"
'(?:(?<!\.)js|[jJ]ava[sS]cript)': JavaScript
'(?:(?<!\.)ts|[tT]ype[sS]cript)': TypeScript
.net: "'.NET'"
dot net: "'.NET'"
cms: "'CMS'"
"[aA]ngular[jJ][sS]": AngularJS
SUITS: "'Sales'"
'\bcss\b(?!/)': "'CSS'"
'(?<!\.)[hH]tml': "'HTML'"
'url(?!=)': "'URL'"
'\bjs\b(?![.])|\b[jJ]ava[sS]cript\b': "'JavaScript'"
'\bts\b(?![.])|\b[tT]ype[sS]cript\b': "'TypeScript'"
'.net': "'.NET'"
'dot net': "'.NET'"
'\bcms\b': "'CMS'"
'[aA]ngular[jJ][sS]': "'AngularJS'"
'SUITS': "'Sales'"
10 changes: 10 additions & 0 deletions .github/styles/UmbracoDocs/Repetition.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
extends: repetition
message: "'%s' is repeated."
description: >
Detects repeated words like 'the the'.
alpha: true
level: warning
tokens:
- '[^\s]+'

7 changes: 6 additions & 1 deletion .github/styles/UmbracoDocs/SentenceLength.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
message: "Write shorter sentences (less than 25 words)."
---
extends: occurrence
message: "Write shorter sentences (less than 25 words). For content inside note or warning blocks, add blank lines around the content."
description: >
Shorter sentences improve readability and clarity in documentation.
To avoid false positives in note or warning tags, add blank lines around the block content.
link: https://docs.umbraco.com/contributing/documentation/style-guide#avoid-long-sentences
scope: sentence
level: warning
max: 25
Expand Down
8 changes: 7 additions & 1 deletion .github/styles/UmbracoDocs/Spacing.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
---
extends: existence
message: "'%s' should have one space."
description: >
Ensures there is exactly one space after punctuations. Flags both extra spaces and missing spaces
after punctuation marks to improve consistency and readability.
link: https://docs.umbraco.com/contributing/documentation/style-guide#avoid-double-spacing
level: error
tokens:
- '[.?!] {2,}[A-Z]'
- '[.?!,;:] {2,}' # double space after punctuation
- '[.?!,;:](?!\s)[A-Z]' # missing space after punctuation
Loading