[CI] Page-local dictionary normalization: drop unused words and duplicates (now case-insensitive compare) (#6165)

This commit is contained in:
Patrice Chalin 2025-02-01 09:56:02 -05:00 committed by GitHub
parent 643693e368
commit 748555c22f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
48 changed files with 115 additions and 106 deletions

View File

@ -4,7 +4,7 @@ linkTitle: Exposing a Collector
date: 2022-09-08
author: '[Benedikt Bongartz](https://github.com/frzifus)'
# prettier-ignore
cSpell:ignore: basicauth Benedikt Bongartz dXNlci0xOjEyMzQK frzifus htpasswd k8sattributes K8sattributes k8sattributesprocessor K8sprocessor k8sprocessor Keycloak letsencrypt llczt oidc rolebinding
cSpell:ignore: basicauth Benedikt Bongartz dXNlci0xOjEyMzQK frzifus htpasswd k8sattributes k8sattributesprocessor Keycloak letsencrypt llczt oidc rolebinding
---
Exposing an [OpenTelemetry Collector](/docs/collector/) currently requires a

View File

@ -5,7 +5,7 @@ date: 2022-12-19
author: '[Vijay Samuel](https://github.com/vjsamuel) (eBay)'
canonical_url: https://tech.ebayinc.com/engineering/why-and-how-ebay-pivoted-to-opentelemetry/
# prettier-ignore
cSpell:ignore: Aishwarya Aradros Ashpole Auditbeat autodiscover Bhattacharya Bogdan Charif Christos clusterlocal Dropwizard Drutu Feldmeier Filebeat filereloadreceiver Golubenco Kroh kube Markou Metricbeat metricbeat Mirabella Nigaryan Premendra Pérez Rami Ruflin Santanu Sarbu sharded Siering Soriano statefulset Steffen Teoh Tigran Vijay Yandapalli
cSpell:ignore: Aishwarya Aradros Ashpole Auditbeat autodiscover Bhattacharya Bogdan Charif Christos clusterlocal Dropwizard Drutu Feldmeier Filebeat filereloadreceiver Golubenco Kroh kube Markou metricbeat Mirabella Nigaryan Premendra Pérez Rami Ruflin Santanu Sarbu sharded Siering Soriano statefulset Steffen Teoh Tigran Vijay Yandapalli
---
eBay makes a crucial pivot to OpenTelemetry to better align with industry

View File

@ -5,7 +5,7 @@ date: 2023-07-24
author: '[Reese Lee](https://github.com/reese-lee) (New Relic)'
body_class: otel-with-contributions-from
# prettier-ignore
cSpell:ignore: Aronoff autoscaler Boten codepath fluentbit k8sattributesprocessor kubelet spanmetrics
cSpell:ignore: Aronoff autoscaler codepath fluentbit k8sattributesprocessor kubelet spanmetrics
---
With contributions from [Adriana Villela](https://github.com/avillela)

View File

@ -4,8 +4,7 @@ linkTitle: Testing the OTel Demo
date: 2023-07-27
author: '[Daniel Dias](https://github.com/danielbdias) (Tracetest)'
body_class: otel-with-contributions-from
# prettier-ignore
cSpell:ignore: Adnan apiserver apparmor choren containerd Hamric healthcheck kube kubelet kubetracing nanos oteldemo Rahić tracetest tracetesting
cSpell:ignore: Adnan Hamric kube nanos oteldemo Rahić tracetest tracetesting
---
With contributions from [Adnan Rahić](https://github.com/adnanrahic) and

View File

@ -3,7 +3,6 @@ title: Why Histograms?
date: 2023-05-08
author: '[Daniel Dyla](https://github.com/dyladan)'
canonical_url: https://dyladan.me/histograms/2023/05/02/why-histograms/
cSpell:ignore: reimplementation
---
A histogram is a multi-value counter that summarizes the distribution of data

View File

@ -8,7 +8,7 @@ author: >
issue: https://github.com/open-telemetry/opentelemetry.io/issues/5606
sig: Java, Specification
# prettier-ignore
cSpell:ignore: Clerc cust Cyrille Dotel Gregor Logback logback otlphttp otlpjson resourcedetection SLF4J stdout Zeitlinger
cSpell:ignore: Clerc cust Cyrille Dotel Gregor logback otlphttp otlpjson resourcedetection SLF4J stdout Zeitlinger
---
If you want to get logs from your Java application ingested into an

View File

@ -4,7 +4,7 @@ linkTitle: OpenTelemetry Community Awards Winners
date: 2024-11-15
author: OpenTelemetry Governance Committee
# prettier-ignore
cSpell:ignore: anunarapureddy Anusha avillela codeboten emdneto Narapureddy ozal serkan Serkan Özal
cSpell:ignore: anunarapureddy Anusha avillela codeboten emdneto Narapureddy ozal serkan Özal
---
We are excited to announce the winners of the first-ever **OpenTelemetry

View File

@ -3,7 +3,7 @@ title: Introducing the new container log parser for OpenTelemetry Collector
linkTitle: Collector container log parser
date: 2024-05-22
author: '[Christos Markou](https://github.com/ChrsMark) (Elastic)'
cSpell:ignore: Christos containerd Filelog filelog Jaglowski kube Markou
cSpell:ignore: Christos containerd filelog Jaglowski kube Markou
---
[Filelog receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver)

View File

@ -8,7 +8,7 @@ author: >
issue: https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/11581
sig: Java
# prettier-ignore
cSpell:ignore: Bisutti Customizer customizers Gregor Logback logback petclinic Zeitlinger
cSpell:ignore: Bisutti Customizer customizers Gregor logback petclinic Zeitlinger
---
We're proud to announce that the OpenTelemetry Spring Boot starter is now

View File

@ -1,7 +1,7 @@
---
title: Architecture
weight: 28
cSpell:ignore: fanoutconsumer probabilisticsampler spanmetrics zpages
cSpell:ignore: fanoutconsumer probabilisticsampler zpages
---
The OpenTelemetry Collector is an executable file that can receive telemetry,

View File

@ -3,7 +3,7 @@ title: Configuration
weight: 20
description: Learn how to configure the Collector to suit your needs
# prettier-ignore
cSpell:ignore: cfssl cfssljson fluentforward gencert genkey hostmetrics initca OIDC oidc otlphttp pprof prodevent prometheusremotewrite spanevents upsert zpages
cSpell:ignore: cfssl cfssljson fluentforward gencert genkey hostmetrics initca oidc otlphttp pprof prodevent prometheusremotewrite spanevents upsert zpages
---
<!-- markdownlint-disable link-fragments -->

View File

@ -1,8 +1,7 @@
---
title: Install the Collector
weight: 2
# prettier-ignore
cSpell:ignore: darwin dpkg GOARCH journalctl kubectl otelcorecol pprof tlsv zpages
cSpell:ignore: darwin dpkg journalctl kubectl otelcorecol pprof tlsv zpages
---
You can deploy the OpenTelemetry Collector on a wide variety of operating

View File

@ -1,8 +1,7 @@
---
title: Internal telemetry
weight: 25
# prettier-ignore
cSpell:ignore: alloc batchprocessor journalctl kube otecol pprof tracez underperforming zpages
cSpell:ignore: alloc batchprocessor journalctl
---
You can inspect the health of any OpenTelemetry Collector instance by checking

View File

@ -3,7 +3,7 @@ title: Quick start
description: Setup and collect telemetry in minutes!
aliases: [getting-started]
weight: 1
cSpell:ignore: docker dokey dpkg gobin okey telemetrygen
cSpell:ignore: docker dokey gobin okey telemetrygen
---
<!-- markdownlint-disable ol-prefix blanks-around-fences -->

View File

@ -1,7 +1,6 @@
---
title: Development
# prettier-ignore
cSpell:ignore: grpcio intellij libcurl libprotobuf nlohmann openssl protoc rebar
cSpell:ignore: grpcio intellij libcurl libprotobuf nlohmann openssl protoc
---
[OpenTelemetry Demo GitHub repository](https://github.com/open-telemetry/opentelemetry-demo)

View File

@ -2,7 +2,7 @@
title: Docker deployment
linkTitle: Docker
aliases: [docker_deployment]
cSpell:ignore: otelcollector otlphttp spanmetrics tracetest tracetesting
cSpell:ignore: otlphttp spanmetrics tracetest tracetesting
---
<!-- markdownlint-disable code-block-style ol-prefix -->

View File

@ -2,7 +2,7 @@
title: Currency Service
linkTitle: Currency
aliases: [currencyservice]
cSpell:ignore: chrono decltype labelkv millis noexcept nostd
cSpell:ignore: decltype labelkv noexcept nostd
---
This service provides functionality to convert amounts between different

View File

@ -1,6 +1,5 @@
---
title: React Native App
cSpell:ignore: typeof
---
The React Native app provides a mobile UI for users on Android and iOS devices

View File

@ -1,7 +1,6 @@
---
title: Manual Span Attributes
aliases: [manual_span_attributes, ../manual-span-attributes]
cSpell:ignore: featureflag
---
This page lists the manual Span Attributes used throughout the demo:

View File

@ -3,7 +3,7 @@ title: Lambda Collector Configuration
linkTitle: Lambda Collector Config
weight: 11
description: Add and configure the Collector Lambda layer to your Lambda
cSpell:ignore: ADOT awsxray configmap confmap loglevel regionalized
cSpell:ignore: ADOT awsxray configmap confmap regionalized
---
The OpenTelemetry community offers the Collector in a separate Lambda layer from

View File

@ -2,7 +2,7 @@
title: Important Components for Kubernetes
linkTitle: Components
# prettier-ignore
cSpell:ignore: alertmanagers containerd crio filelog gotime horizontalpodautoscalers hostfs hostmetrics iostream k8sattributes kubelet kubeletstats logtag replicasets replicationcontrollers resourcequotas statefulsets varlibdockercontainers varlogpods
cSpell:ignore: alertmanagers filelog horizontalpodautoscalers hostfs hostmetrics k8sattributes kubelet kubeletstats replicasets replicationcontrollers resourcequotas statefulsets varlibdockercontainers varlogpods
---
The [OpenTelemetry Collector](/docs/collector/) supports many different

View File

@ -5,7 +5,7 @@ weight: 11
description:
An implementation of auto-instrumentation using the OpenTelemetry Operator.
# prettier-ignore
cSpell:ignore: GRPCNETCLIENT k8sattributesprocessor otelinst otlpreceiver PTRACE REDISCALA
cSpell:ignore: GRPCNETCLIENT k8sattributesprocessor otelinst otlpreceiver REDISCALA
---
The OpenTelemetry Operator supports injecting and configuring

View File

@ -1,7 +1,7 @@
---
title: Exporters
weight: 50
cSpell:ignore: chrono millis ostream rebar relx
cSpell:ignore: rebar relx
---
{{% docs/languages/exporters/intro erlang %}}

View File

@ -5,7 +5,7 @@ aliases:
- manual_instrumentation
weight: 30
description: Manual instrumentation for OpenTelemetry Go
cSpell:ignore: fatalf logr logrus otelslog otlplog otlploghttp sdktrace sighup
cSpell:ignore: fatalf logr logrus otlplog otlploghttp sdktrace sighup
---
{{% docs/languages/instrumentation-intro %}}

View File

@ -8,7 +8,7 @@ aliases:
- libraries
weight: 10
description: Instrumentation ecosystem in OpenTelemetry Java
cSpell:ignore: Logback logback
cSpell:ignore: logback
---
<!-- markdownlint-disable no-duplicate-heading -->

View File

@ -6,7 +6,6 @@ description: >-
JavaScript (for Node.js & the browser).
aliases: [/js, /js/metrics, /js/tracing]
weight: 20
cSpell:ignore: Roadmap
---
{{% docs/languages/index-intro js /%}}

View File

@ -3,7 +3,7 @@ title: Getting Started
description: Get up and running with OpenTelemetry for PHP.
aliases: [getting_started]
weight: 10
cSpell:ignore: darwin myapp PECL pecl rolldice strval
cSpell:ignore: darwin myapp pecl rolldice strval
---
OpenTelemetry for PHP can be used to generate and export [traces][], [metrics][]

View File

@ -2,7 +2,7 @@
title: OpenTelemetry Distro
linkTitle: Distro
weight: 110
cSpell:ignore: distro distros loglevel
cSpell:ignore: distro distros
---
In order to make using OpenTelemetry and auto-instrumentation as quick as

View File

@ -3,7 +3,7 @@ title: Getting Started
description: Get telemetry for your app in less than 5 minutes!
weight: 10
# prettier-ignore
cSpell:ignore: debugexporter diceroller distro loglevel maxlen randint rolldice rollspan venv werkzeug
cSpell:ignore: debugexporter diceroller distro maxlen randint rolldice rollspan venv
---
This page will show you how to get started with OpenTelemetry in Python.

View File

@ -2,7 +2,7 @@
title: Using instrumentation libraries
linkTitle: Libraries
weight: 40
cSpell:ignore: HTTPX httpx instrumentor uninstrument
cSpell:ignore: httpx instrumentor uninstrument
---
{{% docs/languages/libraries-intro "python" %}}

View File

@ -3,8 +3,7 @@ title: Getting Started
description: Get telemetry from your app in less than 5 minutes!
aliases: [getting_started]
weight: 10
# prettier-ignore
cSpell:ignore: darwin rolldice sinatra struct Tracestate tracestate truffleruby
cSpell:ignore: darwin rolldice sinatra struct tracestate truffleruby
---
This page will show you how to get started with OpenTelemetry in Ruby.

View File

@ -1,7 +1,6 @@
---
title: Exporters
weight: 50
cSpell:ignore: chrono millis ostream
---
{{% docs/languages/exporters/intro rust %}}

View File

@ -3,7 +3,7 @@ title: Application server configuration
linkTitle: App server config
description: Learn how to define agent paths for Java application servers
weight: 215
cSpell:ignore: asadmin binsetenv binstart Glassfish Payara setenv
cSpell:ignore: asadmin Glassfish Payara setenv
---
When instrumenting an app that runs on a Java application server with a Java

View File

@ -4,7 +4,7 @@ linkTitle: Instrumentations
description: OpenTelemetry .NET Automatic Instrumentation supported libraries.
weight: 10
# prettier-ignore
cSpell:ignore: ASPNET ASPNETCORE Bootstrapper DBSTATEMENT ELASTICTRANSPORT ENTITYFRAMEWORKCORE GRPCNETCLIENT HOSTINGSTARTUPASSEMBLIES HTTPCLIENT ILOGGER MASSTRANSIT MYSQLCONNECTOR MYSQLDATA NETRUNTIME NPGSQL Npgsql NSERVICEBUS ORACLEMDA RABBITMQ SQLCLIENT STACKEXCHANGEREDIS WCFCLIENT WCFSERVICE
cSpell:ignore: ASPNET ASPNETCORE Bootstrapper DBSTATEMENT ELASTICTRANSPORT ENTITYFRAMEWORKCORE GRPCNETCLIENT HOSTINGSTARTUPASSEMBLIES HTTPCLIENT ILOGGER MASSTRANSIT MYSQLCONNECTOR MYSQLDATA NETRUNTIME npgsql NSERVICEBUS ORACLEMDA RABBITMQ SQLCLIENT STACKEXCHANGEREDIS WCFCLIENT WCFSERVICE
---
The OpenTelemetry .NET Automatic Instrumentation supports a wide variety of

View File

@ -2,7 +2,7 @@
title: Troubleshooting .NET automatic instrumentation issues
linkTitle: Troubleshooting
weight: 50
cSpell:ignore: COREHOST corehost NETFX netfx TRACEFILE
cSpell:ignore: corehost netfx TRACEFILE
---
## General steps

View File

@ -3,7 +3,7 @@ title: PHP zero-code instrumentation
linkTitle: PHP
weight: 30
aliases: [/docs/languages/php/automatic]
cSpell:ignore: centos democlass epel myapp pecl phar remi unindented userland
cSpell:ignore: centos democlass epel myapp pecl phar remi
---
## Requirements

View File

@ -3,8 +3,7 @@ title: Python zero-code instrumentation
linkTitle: Python
weight: 30
aliases: [/docs/languages/python/automatic]
# prettier-ignore
cSpell:ignore: devel distro mkdir myapp pyproject uninstrumented virtualenv Werkzeug
cSpell:ignore: devel distro myapp
---
Automatic instrumentation with Python uses a Python agent that can be attached

View File

@ -5,8 +5,7 @@ weight: 10
aliases:
- /docs/languages/python/automatic/configuration
- /docs/languages/python/automatic/agent-config
# prettier-ignore
cSpell:ignore: distro healthcheck instrumentor mkdir myapp pyproject Starlette uninstrumented urllib virtualenv
cSpell:ignore: healthcheck instrumentor myapp pyproject Starlette urllib
---
The agent is highly configurable, either by:

View File

@ -3,8 +3,7 @@ title: Auto-Instrumentation Example
linkTitle: Example
weight: 20
aliases: [/docs/languages/python/automatic/example]
# prettier-ignore
cSpell:ignore: distro instrumentor mkdir MSIE Referer Starlette uninstrumented venv werkzeug
cSpell:ignore: distro instrumentor mkdir MSIE Referer Starlette venv
---
This page demonstrates how to use Python auto-instrumentation in OpenTelemetry.

View File

@ -3,8 +3,7 @@ title: Logs Auto-Instrumentation Example
linkTitle: Logs Example
weight: 20
aliases: [/docs/languages/python/automatic/logs-example]
# prettier-ignore
cSpell:ignore: distro instrumentor mkdir MSIE Referer Starlette uninstrumented virtualenv
cSpell:ignore: distro mkdir virtualenv
---
This page demonstrates how to use Python logs auto-instrumentation in

View File

@ -3,8 +3,7 @@ title: Using the OpenTelemetry Operator to Inject Auto-Instrumentation
linkTitle: Operator
aliases: [/docs/languages/python/automatic/operator]
weight: 30
# prettier-ignore
cSpell:ignore: distro grpcio mkdir myapp psutil PYTHONPATH uninstrumented virtualenv
cSpell:ignore: grpcio myapp psutil PYTHONPATH
---
If you run your Python service in Kubernetes, you can take advantage of the

View File

@ -2,8 +2,6 @@
title: Adopters
description: Organizations that use OpenTelemetry
# All spelling entries must be on a single line
# prettier-ignore
cSpell:ignore: Dapr Datenrettungsdienste Farfetch Globale Logicmonitor Logz Uplight Wandera Zocdoc
---
OpenTelemetry's mission is to enable effective observability for all its

View File

@ -2,8 +2,7 @@
title: コレクターのインストール
weight: 2
default_lang_commit: a570a00
# prettier-ignore
cSpell:ignore: darwin dpkg GOARCH journalctl kubectl otelcorecol pprof tlsv zpages
cSpell:ignore: darwin dpkg journalctl kubectl otelcorecol pprof tlsv zpages
---
OpenTelemetryコレクターはさまざまなオペレーティングシステムやアーキテクチャにデプロイできます。

View File

@ -3,7 +3,6 @@ title: コードベース
description: コードベース計装のセットアップに不可欠なステップを学ぶ
weight: 20
default_lang_commit: d8c5612
cSpell:ignore: proxying
---
## OpenTelemetry APIとSDKをインポートする {#import-the-opentelemetry-api-and-sdk}

View File

@ -1,8 +1,7 @@
---
title: 開発環境
default_lang_commit: a6efef05af7f854d2fcc9ec4b7433cc4ae799a40
# prettier-ignore
cSpell:ignore: grpcio intellij libcurl libprotobuf nlohmann openssl protoc rebar
cSpell:ignore: grpcio intellij libcurl libprotobuf nlohmann openssl protoc
---
[OpenTelemetry デモ GitHub リポジトリ](https://github.com/open-telemetry/opentelemetry-demo)

View File

@ -6,8 +6,7 @@ aliases:
weight: 30
description: Instrumentação manual para OpenTelemetry Go
default_lang_commit: a025c25aaf1aef653caa34e49e8714472cbeddbd
# prettier-ignore
cSpell:ignore: fatalf logr logrus otelslog otlplog otlploghttp sdktrace sighup updown
cSpell:ignore: fatalf logr logrus otlplog otlploghttp sdktrace sighup updown
---
{{% docs/languages/instrumentation-intro %}}

View File

@ -9,7 +9,7 @@ aliases:
weight: 10
description: Ecossistema de Instrumentação no OpenTelemetry Java
default_lang_commit: d65798034935fcfdbdc6599b6e6d3dd942fbe62c
cSpell:ignore: Logback logback
cSpell:ignore: logback
---
<!-- markdownlint-disable no-duplicate-heading -->

View File

@ -1,4 +1,4 @@
#!/usr/bin/perl -w -i
#!/usr/bin/perl -w
#
# cSpell:ignore textlintrc
@ -6,64 +6,94 @@ use strict;
use warnings;
use FileHandle;
my @words;
my $lineLenLimit = 79;
my $current_file = '';
my $has_front_matter = 0;
my $in_front_matter = 0;
my $last_line_contained_dict_words = 0;
my %dictionary = getSiteWideDictWords('.cspell/en-words.txt', '.textlintrc.yml');
while (<>) {
# Starting a new file?
if ($current_file ne $ARGV) {
$current_file = $ARGV;
if(/^---$/) {
while (my $current_file = shift @ARGV) {
my @words;
my $has_front_matter = 0;
my $in_front_matter = 0;
my $last_line_contained_dict_words = 0;
# Read the entire file content into an array
open my $fh, '<', $current_file or die "Cannot open $current_file: $!";
my @file_content = <$fh>;
close $fh;
my $file_length = scalar @file_content;
my $line_number = 0;
my @output_content;
while ($line_number < $file_length) {
$_ = $file_content[$line_number];
$line_number++;
if ($line_number == 1 && /^---$/) {
$has_front_matter = 1;
$in_front_matter = 1;
print;
push @output_content, $_;
next;
}
if ($has_front_matter && !$in_front_matter) {
push @output_content, $_;
next;
}
$in_front_matter = 0 if $has_front_matter && $in_front_matter && /^---$/;
# Process cSpell words
if (/^\s*(spelling: |-\s*)?cSpell:ignore:?\s*(.*)$/
|| (/^(\s+)(\S.*)$/ && $last_line_contained_dict_words)
) {
push @words, split /[,\s]+/, $2;
$last_line_contained_dict_words = 1;
next;
} else {
$has_front_matter = 0;
$in_front_matter = 0;
$last_line_contained_dict_words = 0;
}
}
if ($has_front_matter && !$in_front_matter) {
print; next;
}
if (@words && (!$has_front_matter || !$in_front_matter)) {
@words = grep { !/^\s*(cSpell:ignore|spelling):?\s*$/ && !$dictionary{$_} } @words;
my %duplicates;
# Ensure all words are unique (case-insensitive), drop duplicates
@words = grep { !$duplicates{lc $_}++ } @words;
# Words that were duplicates (usually because they differed in
# capitalization) should be in lowercase since lowercase words match the
# spelling of all capitalized forms of the word.
@words = map { $duplicates{lc $_} > 1 ? lc $_ : $_ } @words;
$in_front_matter = 0 if $has_front_matter && $in_front_matter && /^---$/;
# Check if each word is present in the remainder of the file
my @filtered_words;
foreach my $word (@words) {
my $found = 0;
for (my $i = 1; $i < $file_length; $i++) {
my $line = $file_content[$i];
if ($line !~ /cSpell/i && $line =~ /\Q$word\E/i) {
$found = 1;
last;
}
}
push @filtered_words, $word if $found;
}
# Process cSpell words
if (/^\s*(spelling: |-\s*)?cSpell:ignore:?\s*(.*)$/
|| (/^(\s+)(\S.*)$/ && $last_line_contained_dict_words)
) {
push @words, split /[,\s]+/, $2;
$last_line_contained_dict_words = 1;
next;
} else {
$last_line_contained_dict_words = 0;
}
if (@words && (!$has_front_matter || !$in_front_matter)) {
@words = grep { !/^\s*(cSpell:ignore|spelling):?\s*$/ && !$dictionary{$_} } @words;
# Ensure all words are unique.
my %duplicates;
@words = grep { !$duplicates{$_}++ } @words;
if (@words) {
my $words = join(' ', sort {lc($a) cmp lc($b)} @words);
my $line = "cSpell:ignore: $words\n";
# Only add `# prettier-ignore` if line is too long
print "# prettier-ignore\n" if length($line) > $lineLenLimit;
print $line;
# print STDOUT "> printing line: $line";
@words = ();
if (@filtered_words) {
my $words = join(' ', sort {lc($a) cmp lc($b)} @filtered_words);
my $line = "cSpell:ignore: $words\n";
# Only add `# prettier-ignore` if line is too long
push @output_content, "# prettier-ignore\n" if length($line) > $lineLenLimit;
push @output_content, $line;
@words = ();
}
}
push @output_content, $_ unless /^# prettier-ignore$/ || /^spelling:\s*[|>-]*$/;
}
print unless /^# prettier-ignore$/ || /^spelling:\s*[|>-]*$/;
# Write the modified content back to the file
open my $out_fh, '>', $current_file or die "Cannot open $current_file: $!";
print $out_fh @output_content;
close $out_fh;
}
sub getSiteWideDictWords {