@networkpro/blog 1.2.7 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +12 -0
- package/.editorconfig +60 -0
- package/.gitattributes +199 -0
- package/.github/COMMIT_GUIDE.md +34 -0
- package/.github/ISSUE_TEMPLATE/config.yml +31 -0
- package/.github/workflows/auto-assign.yml +34 -0
- package/.github/workflows/backup-branch.yml +40 -0
- package/.github/workflows/build-and-deploy.yml +85 -0
- package/.github/workflows/check-codeql.yml +40 -0
- package/.github/workflows/dependency-review.yml +21 -0
- package/.github/workflows/publish-test.yml +154 -0
- package/.github/workflows/publish.yml +209 -0
- package/.markdownlint.mjs +32 -0
- package/.md-smart-quotes.js +31 -0
- package/.prettierignore +38 -0
- package/.prettierrc +29 -0
- package/.stylelintignore +34 -0
- package/.vscode/customData.json +69 -0
- package/.vscode/settings.json +40 -0
- package/CHANGELOG.md +106 -1
- package/assets/.gitkeep +0 -0
- package/package.json +3 -3
- package/src/.authors.yml +11 -0
- package/src/img/encryption-eff.png +0 -0
- package/src/img/encryption-eff.webp +0 -0
- package/src/posts/2025-06-23-encryption-eff.md +57 -0
- package/src/posts/drafts/.meta.yml +1 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# .github/workflows/publish-test.yml
|
|
2
|
+
#
|
|
3
|
+
# Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
|
+
# SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
# This file is part of Network Pro
|
|
6
|
+
|
|
7
|
+
name: Publish to Registries
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
actions: read
|
|
14
|
+
contents: read
|
|
15
|
+
|
|
16
|
+
# Allow one concurrent deployment
|
|
17
|
+
concurrency:
|
|
18
|
+
group: 'publish'
|
|
19
|
+
cancel-in-progress: true
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
check-codeql:
|
|
23
|
+
uses: ./.github/workflows/check-codeql.yml
|
|
24
|
+
|
|
25
|
+
build:
|
|
26
|
+
needs: check-codeql
|
|
27
|
+
runs-on: ubuntu-24.04
|
|
28
|
+
|
|
29
|
+
steps:
|
|
30
|
+
- name: Checkout repository
|
|
31
|
+
uses: actions/checkout@v4
|
|
32
|
+
with:
|
|
33
|
+
fetch-depth: 0
|
|
34
|
+
|
|
35
|
+
- name: Set up Node.js
|
|
36
|
+
uses: actions/setup-node@v4
|
|
37
|
+
with:
|
|
38
|
+
node-version: 24
|
|
39
|
+
cache: npm
|
|
40
|
+
cache-dependency-path: package-lock.json
|
|
41
|
+
|
|
42
|
+
- name: Install Node.js dependencies
|
|
43
|
+
run: npm ci
|
|
44
|
+
|
|
45
|
+
# Ensure MkDocs builds successfully
|
|
46
|
+
- name: Set up Python
|
|
47
|
+
uses: actions/setup-python@v5
|
|
48
|
+
with:
|
|
49
|
+
python-version: '3.13'
|
|
50
|
+
|
|
51
|
+
- name: Install Python dependencies
|
|
52
|
+
run: pip install -r requirements.txt
|
|
53
|
+
|
|
54
|
+
# Strict mode disabled for mkdocs-material
|
|
55
|
+
- name: Build MkDocs documentation
|
|
56
|
+
run: mkdocs build
|
|
57
|
+
|
|
58
|
+
# Remove build artifacts
|
|
59
|
+
- name: Clean build directory
|
|
60
|
+
run: rm -rf build/
|
|
61
|
+
|
|
62
|
+
# Create Git archive of version-controlled files
|
|
63
|
+
- name: Create clean source archive
|
|
64
|
+
run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
|
|
65
|
+
|
|
66
|
+
- name: Upload source archive
|
|
67
|
+
uses: actions/upload-artifact@v4
|
|
68
|
+
with:
|
|
69
|
+
name: clean-source
|
|
70
|
+
path: clean-source.tar.gz
|
|
71
|
+
|
|
72
|
+
publish-npm:
|
|
73
|
+
needs: build
|
|
74
|
+
runs-on: ubuntu-24.04
|
|
75
|
+
|
|
76
|
+
steps:
|
|
77
|
+
- name: Download clean source archive
|
|
78
|
+
uses: actions/download-artifact@v4
|
|
79
|
+
with:
|
|
80
|
+
name: clean-source
|
|
81
|
+
path: ./
|
|
82
|
+
|
|
83
|
+
- name: Extract source archive
|
|
84
|
+
run: tar -xzf clean-source.tar.gz
|
|
85
|
+
|
|
86
|
+
- name: Remove extracted source archive
|
|
87
|
+
run: rm clean-source.tar.gz
|
|
88
|
+
|
|
89
|
+
- name: Set up Node.js for npmjs
|
|
90
|
+
uses: actions/setup-node@v4
|
|
91
|
+
with:
|
|
92
|
+
node-version: 24
|
|
93
|
+
registry-url: https://registry.npmjs.org/
|
|
94
|
+
cache: npm
|
|
95
|
+
|
|
96
|
+
- name: Check for existence of package-lock.json
|
|
97
|
+
run: |
|
|
98
|
+
if [ ! -f package-lock.json ]; then
|
|
99
|
+
echo "Warning: package-lock.json not found";
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
- name: Set up Git user
|
|
103
|
+
run: |
|
|
104
|
+
git config --global user.email "github@sl.neteng.cc"
|
|
105
|
+
git config --global user.name "SunDevil311"
|
|
106
|
+
|
|
107
|
+
- name: Publish package to npmjs
|
|
108
|
+
run: npm publish --dry-run
|
|
109
|
+
env:
|
|
110
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_NETPRO }}
|
|
111
|
+
|
|
112
|
+
publish-gpr:
|
|
113
|
+
needs: build
|
|
114
|
+
runs-on: ubuntu-24.04
|
|
115
|
+
|
|
116
|
+
steps:
|
|
117
|
+
- name: Download clean source archive
|
|
118
|
+
uses: actions/download-artifact@v4
|
|
119
|
+
with:
|
|
120
|
+
name: clean-source
|
|
121
|
+
path: ./
|
|
122
|
+
|
|
123
|
+
- name: Extract source archive
|
|
124
|
+
run: tar -xzf clean-source.tar.gz
|
|
125
|
+
|
|
126
|
+
- name: Remove extracted source archive
|
|
127
|
+
run: rm clean-source.tar.gz
|
|
128
|
+
|
|
129
|
+
- name: Set up Node.js for GPR
|
|
130
|
+
uses: actions/setup-node@v4
|
|
131
|
+
with:
|
|
132
|
+
node-version: 24
|
|
133
|
+
registry-url: https://npm.pkg.github.com/
|
|
134
|
+
cache: npm
|
|
135
|
+
|
|
136
|
+
- name: Check for existence of package-lock.json
|
|
137
|
+
run: |
|
|
138
|
+
if [ ! -f package-lock.json ]; then
|
|
139
|
+
echo "Warning: package-lock.json not found";
|
|
140
|
+
fi
|
|
141
|
+
|
|
142
|
+
- name: Set up Git user
|
|
143
|
+
run: |
|
|
144
|
+
git config --global user.email "github@sl.neteng.cc"
|
|
145
|
+
git config --global user.name "SunDevil311"
|
|
146
|
+
|
|
147
|
+
- name: Update package name for GPR
|
|
148
|
+
run: |
|
|
149
|
+
sed -i 's/"name": ".*"/"name": "@netwk-pro\/blog"/' package.json
|
|
150
|
+
|
|
151
|
+
- name: Publish package to GPR
|
|
152
|
+
run: npm publish --dry-run
|
|
153
|
+
env:
|
|
154
|
+
NODE_AUTH_TOKEN: ${{ secrets.NWPRO_GPR }}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# .github/workflows/publish.yml
|
|
2
|
+
#
|
|
3
|
+
# Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
4
|
+
# SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
5
|
+
# This file is part of Network Pro
|
|
6
|
+
|
|
7
|
+
name: Publish to Registries
|
|
8
|
+
|
|
9
|
+
on:
|
|
10
|
+
workflow_run:
|
|
11
|
+
workflows: ['Build Site and Deploy to GH Pages']
|
|
12
|
+
types:
|
|
13
|
+
- completed
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
actions: read
|
|
17
|
+
contents: read
|
|
18
|
+
|
|
19
|
+
# Allow one concurrent deployment
|
|
20
|
+
concurrency:
|
|
21
|
+
group: 'publish'
|
|
22
|
+
cancel-in-progress: true
|
|
23
|
+
|
|
24
|
+
# cspell:ignore userconfig
|
|
25
|
+
|
|
26
|
+
jobs:
|
|
27
|
+
build:
|
|
28
|
+
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
|
29
|
+
runs-on: ubuntu-24.04
|
|
30
|
+
|
|
31
|
+
steps:
|
|
32
|
+
- name: Checkout repository
|
|
33
|
+
uses: actions/checkout@v4
|
|
34
|
+
with:
|
|
35
|
+
fetch-depth: 0
|
|
36
|
+
|
|
37
|
+
- name: Set up Node.js
|
|
38
|
+
uses: actions/setup-node@v4
|
|
39
|
+
with:
|
|
40
|
+
node-version: 24
|
|
41
|
+
cache: npm
|
|
42
|
+
cache-dependency-path: package-lock.json
|
|
43
|
+
|
|
44
|
+
- name: Upgrade npm
|
|
45
|
+
run: |
|
|
46
|
+
corepack enable
|
|
47
|
+
npm install -g npm@11.4.1
|
|
48
|
+
|
|
49
|
+
- name: Install Node.js dependencies
|
|
50
|
+
run: npm ci
|
|
51
|
+
|
|
52
|
+
# Ensure MkDocs builds successfully
|
|
53
|
+
- name: Set up Python
|
|
54
|
+
uses: actions/setup-python@v5
|
|
55
|
+
with:
|
|
56
|
+
python-version: '3.13'
|
|
57
|
+
|
|
58
|
+
- name: Install Python dependencies
|
|
59
|
+
run: pip install -r requirements.txt
|
|
60
|
+
|
|
61
|
+
# Strict mode disabled for mkdocs-material
|
|
62
|
+
- name: Build MkDocs documentation
|
|
63
|
+
run: mkdocs build
|
|
64
|
+
|
|
65
|
+
# Remove build artifacts
|
|
66
|
+
#- name: Clean build directory
|
|
67
|
+
# run: rm -rf build/
|
|
68
|
+
|
|
69
|
+
# Create Git archive of version-controlled files
|
|
70
|
+
- name: Create clean source archive
|
|
71
|
+
run: git archive --format=tar.gz --output=clean-source.tar.gz HEAD
|
|
72
|
+
|
|
73
|
+
- name: Upload source archive
|
|
74
|
+
uses: actions/upload-artifact@v4
|
|
75
|
+
with:
|
|
76
|
+
name: clean-source
|
|
77
|
+
path: clean-source.tar.gz
|
|
78
|
+
|
|
79
|
+
publish-npm:
|
|
80
|
+
needs: build
|
|
81
|
+
runs-on: ubuntu-24.04
|
|
82
|
+
|
|
83
|
+
steps:
|
|
84
|
+
- name: Download clean source archive
|
|
85
|
+
uses: actions/download-artifact@v4
|
|
86
|
+
with:
|
|
87
|
+
name: clean-source
|
|
88
|
+
path: ./
|
|
89
|
+
|
|
90
|
+
- name: Extract source archive
|
|
91
|
+
run: tar -xzf clean-source.tar.gz
|
|
92
|
+
|
|
93
|
+
- name: Remove extracted source archive
|
|
94
|
+
run: rm clean-source.tar.gz
|
|
95
|
+
|
|
96
|
+
- name: Set up Node.js for npmjs
|
|
97
|
+
uses: actions/setup-node@v4
|
|
98
|
+
with:
|
|
99
|
+
node-version: 24
|
|
100
|
+
registry-url: https://registry.npmjs.org/
|
|
101
|
+
cache: npm
|
|
102
|
+
cache-dependency-path: package-lock.json
|
|
103
|
+
|
|
104
|
+
- name: Upgrade npm
|
|
105
|
+
run: |
|
|
106
|
+
corepack enable
|
|
107
|
+
npm install -g npm@11.4.1
|
|
108
|
+
|
|
109
|
+
- name: Install Node.js dependencies
|
|
110
|
+
run: npm ci
|
|
111
|
+
|
|
112
|
+
- name: Set up Git user
|
|
113
|
+
run: |
|
|
114
|
+
git config --global user.email "github@sl.neteng.cc"
|
|
115
|
+
git config --global user.name "SunDevil311"
|
|
116
|
+
|
|
117
|
+
- name: Print npm config and registry info
|
|
118
|
+
run: |
|
|
119
|
+
echo "🔍 NPM registry (from config):"
|
|
120
|
+
npm config get registry
|
|
121
|
+
|
|
122
|
+
echo "🔍 NPM user config location:"
|
|
123
|
+
echo "$NPM_CONFIG_USERCONFIG"
|
|
124
|
+
|
|
125
|
+
echo "🔍 .npmrc contents:"
|
|
126
|
+
cat "$NPM_CONFIG_USERCONFIG" || echo "❌ No .npmrc found"
|
|
127
|
+
|
|
128
|
+
echo "🔐 Token prefix:"
|
|
129
|
+
echo "${NODE_AUTH_TOKEN:0:4}********"
|
|
130
|
+
env:
|
|
131
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_NETPRO }}
|
|
132
|
+
|
|
133
|
+
- name: Verify npm authentication
|
|
134
|
+
run: npm whoami
|
|
135
|
+
env:
|
|
136
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_NETPRO }}
|
|
137
|
+
|
|
138
|
+
- name: Publish package to npmjs
|
|
139
|
+
run: npm publish --access public
|
|
140
|
+
env:
|
|
141
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_NETPRO }}
|
|
142
|
+
|
|
143
|
+
publish-gpr:
|
|
144
|
+
needs: build
|
|
145
|
+
runs-on: ubuntu-24.04
|
|
146
|
+
|
|
147
|
+
steps:
|
|
148
|
+
- name: Download clean source archive
|
|
149
|
+
uses: actions/download-artifact@v4
|
|
150
|
+
with:
|
|
151
|
+
name: clean-source
|
|
152
|
+
path: ./
|
|
153
|
+
|
|
154
|
+
- name: Extract source archive
|
|
155
|
+
run: tar -xzf clean-source.tar.gz
|
|
156
|
+
|
|
157
|
+
- name: Remove extracted source archive
|
|
158
|
+
run: rm clean-source.tar.gz
|
|
159
|
+
|
|
160
|
+
- name: Set up Node.js for GPR
|
|
161
|
+
uses: actions/setup-node@v4
|
|
162
|
+
with:
|
|
163
|
+
node-version: 24
|
|
164
|
+
registry-url: https://npm.pkg.github.com/
|
|
165
|
+
cache: npm
|
|
166
|
+
cache-dependency-path: package-lock.json
|
|
167
|
+
|
|
168
|
+
- name: Upgrade npm
|
|
169
|
+
run: |
|
|
170
|
+
corepack enable
|
|
171
|
+
npm install -g npm@11.4.1
|
|
172
|
+
|
|
173
|
+
- name: Install Node.js dependencies
|
|
174
|
+
run: npm ci
|
|
175
|
+
|
|
176
|
+
- name: Set up Git user
|
|
177
|
+
run: |
|
|
178
|
+
git config --global user.email "github@sl.neteng.cc"
|
|
179
|
+
git config --global user.name "SunDevil311"
|
|
180
|
+
|
|
181
|
+
- name: Update package name for GPR
|
|
182
|
+
run: |
|
|
183
|
+
sed -i 's/"name": ".*"/"name": "@netwk-pro\/blog"/' package.json
|
|
184
|
+
|
|
185
|
+
- name: Print npm config and registry info
|
|
186
|
+
run: |
|
|
187
|
+
echo "🔍 NPM registry (from config):"
|
|
188
|
+
npm config get registry
|
|
189
|
+
|
|
190
|
+
echo "🔍 NPM user config location:"
|
|
191
|
+
echo "$NPM_CONFIG_USERCONFIG"
|
|
192
|
+
|
|
193
|
+
echo "🔍 .npmrc contents:"
|
|
194
|
+
cat "$NPM_CONFIG_USERCONFIG" || echo "❌ No .npmrc found"
|
|
195
|
+
|
|
196
|
+
echo "🔐 Token prefix:"
|
|
197
|
+
echo "${NODE_AUTH_TOKEN:0:4}********"
|
|
198
|
+
env:
|
|
199
|
+
NODE_AUTH_TOKEN: ${{ secrets.NWPRO_GPR }}
|
|
200
|
+
|
|
201
|
+
- name: Verify npm authentication
|
|
202
|
+
run: npm whoami
|
|
203
|
+
env:
|
|
204
|
+
NODE_AUTH_TOKEN: ${{ secrets.NWPRO_GPR }}
|
|
205
|
+
|
|
206
|
+
- name: Publish package to GPR
|
|
207
|
+
run: npm publish
|
|
208
|
+
env:
|
|
209
|
+
NODE_AUTH_TOKEN: ${{ secrets.NWPRO_GPR }}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
.markdownlint.mjs
|
|
3
|
+
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
5
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
6
|
+
This file is part of Network Pro.
|
|
7
|
+
========================================================================== */
|
|
8
|
+
|
|
9
|
+
import noSmartQuotes from './.md-smart-quotes.js'; // adjust path as needed
|
|
10
|
+
|
|
11
|
+
export default {
|
|
12
|
+
// Enable all default rules, then override below
|
|
13
|
+
default: true,
|
|
14
|
+
|
|
15
|
+
// Custom rule: disallow curly (smart) quotes
|
|
16
|
+
customRules: [noSmartQuotes],
|
|
17
|
+
|
|
18
|
+
// Rule exceptions
|
|
19
|
+
MD041: false, // First line in file should be a top-level header
|
|
20
|
+
MD033: false, // Allow inline HTML
|
|
21
|
+
MD013: false, // Ignore line length
|
|
22
|
+
MD025: false, // Multiple top level headers in the same document
|
|
23
|
+
|
|
24
|
+
// Additional parser options
|
|
25
|
+
options: {
|
|
26
|
+
frontMatter: '^---\\n[\\s\\S]*?\\n---', // YAML front matter regex
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
// Rule-specific configurations
|
|
30
|
+
MD007: { indent: 2 }, // Set consistent unordered list indentation (e.g., 2 spaces)
|
|
31
|
+
MD029: { style: 'ordered' }, // Enforce consistent ordered list numbering
|
|
32
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
.md-smart-quotes.js
|
|
3
|
+
|
|
4
|
+
Copyright © 2025 Network Pro Strategies (Network Pro™)
|
|
5
|
+
SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
6
|
+
This file is part of Network Pro.
|
|
7
|
+
========================================================================== */
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
names: ['no-smart-quotes'],
|
|
11
|
+
description: 'Disallow smart quotes (curly quotes)',
|
|
12
|
+
information: new URL('https://github.com/DavidAnson/markdownlint'),
|
|
13
|
+
tags: ['quotes', 'style'],
|
|
14
|
+
function(params, onError) {
|
|
15
|
+
const smartQuoteRegex = /[“”‘’]/g;
|
|
16
|
+
|
|
17
|
+
params.tokens.forEach((token) => {
|
|
18
|
+
if (token.type === 'inline' && smartQuoteRegex.test(token.content)) {
|
|
19
|
+
const matches = [...token.content.matchAll(smartQuoteRegex)];
|
|
20
|
+
matches.forEach((match) => {
|
|
21
|
+
const index = match.index;
|
|
22
|
+
onError({
|
|
23
|
+
lineNumber: token.lineNumber,
|
|
24
|
+
detail: `Smart quote (${match[0]}) detected`,
|
|
25
|
+
range: [index + 1, 1],
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
};
|
package/.prettierignore
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# .prettierignore
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
4
|
+
# This file is part of Network Pro.
|
|
5
|
+
|
|
6
|
+
# Custom ignores
|
|
7
|
+
.markdownlint.jsonc
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
# Node.js dependencies
|
|
11
|
+
node_modules
|
|
12
|
+
|
|
13
|
+
# Build artifacts
|
|
14
|
+
dist
|
|
15
|
+
.vite
|
|
16
|
+
.cache
|
|
17
|
+
coverage
|
|
18
|
+
|
|
19
|
+
# Temporary files
|
|
20
|
+
*.lock
|
|
21
|
+
*.tmp
|
|
22
|
+
*.swp
|
|
23
|
+
*.bak
|
|
24
|
+
|
|
25
|
+
# Static assets
|
|
26
|
+
**/*.png
|
|
27
|
+
**/*.jpg
|
|
28
|
+
**/*.jpeg
|
|
29
|
+
**/*.gif
|
|
30
|
+
**/*.svg
|
|
31
|
+
**/*.woff
|
|
32
|
+
**/*.woff2
|
|
33
|
+
**/*.ttf
|
|
34
|
+
**/*.eot
|
|
35
|
+
|
|
36
|
+
# Configuration files
|
|
37
|
+
package.json
|
|
38
|
+
package-lock.json
|
package/.prettierrc
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"printWidth": 80,
|
|
3
|
+
"tabWidth": 2,
|
|
4
|
+
"useTabs": false,
|
|
5
|
+
"semi": true,
|
|
6
|
+
"singleQuote": true,
|
|
7
|
+
"quoteProps": "as-needed",
|
|
8
|
+
"jsxSingleQuote": true,
|
|
9
|
+
"trailingComma": "all",
|
|
10
|
+
"bracketSpacing": true,
|
|
11
|
+
"objectWrap": "preserve",
|
|
12
|
+
"bracketSameLine": true,
|
|
13
|
+
"arrowParens": "always",
|
|
14
|
+
"requirePragma": false,
|
|
15
|
+
"insertPragma": false,
|
|
16
|
+
"proseWrap": "always",
|
|
17
|
+
"htmlWhitespaceSensitivity": "strict",
|
|
18
|
+
"endOfLine": "lf",
|
|
19
|
+
"embeddedLanguageFormatting": "auto",
|
|
20
|
+
"singleAttributePerLine": false,
|
|
21
|
+
"overrides": [
|
|
22
|
+
{
|
|
23
|
+
"files": "*.jsonc",
|
|
24
|
+
"options": {
|
|
25
|
+
"trailingComma": "none"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
package/.stylelintignore
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# .stylelintignore
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
|
|
4
|
+
# This file is part of Network Pro.
|
|
5
|
+
|
|
6
|
+
# Node.js dependencies
|
|
7
|
+
node_modules
|
|
8
|
+
|
|
9
|
+
# Build artifacts
|
|
10
|
+
build
|
|
11
|
+
.vite
|
|
12
|
+
.cache
|
|
13
|
+
coverage
|
|
14
|
+
|
|
15
|
+
# Temporary files
|
|
16
|
+
*.lock
|
|
17
|
+
*.tmp
|
|
18
|
+
*.swp
|
|
19
|
+
*.bak
|
|
20
|
+
|
|
21
|
+
# Static assets
|
|
22
|
+
**/*.png
|
|
23
|
+
**/*.jpg
|
|
24
|
+
**/*.jpeg
|
|
25
|
+
**/*.gif
|
|
26
|
+
**/*.svg
|
|
27
|
+
**/*.woff
|
|
28
|
+
**/*.woff2
|
|
29
|
+
**/*.ttf
|
|
30
|
+
**/*.eot
|
|
31
|
+
|
|
32
|
+
# Configuration files
|
|
33
|
+
package.json
|
|
34
|
+
package-lock.json
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"selectors": [
|
|
4
|
+
{
|
|
5
|
+
"name": ".fas",
|
|
6
|
+
"description": "FontAwesome v6 solid icon class"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": ".fa-solid",
|
|
10
|
+
"description": "FontAwesome old solid icon class"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": ".fab",
|
|
14
|
+
"description": "FontAwesome v6 brand icon class"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": ".fa-brands",
|
|
18
|
+
"description": "FontAwsome old brand icon class"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": ".fa-square-instagram",
|
|
22
|
+
"description": "FontAwesome brands Instagram icon class"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": ".fa-square-github",
|
|
26
|
+
"description": "FontAwesome brands GitHub icon class"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": ".fa-linkedin",
|
|
30
|
+
"description": "FontAwesome brands LinkedIn icon class"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": ".fa-square-facebook",
|
|
34
|
+
"description": "FontAwesome brands Facebook icon class"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"name": ".fa-mastodon",
|
|
38
|
+
"description": "FontAwesome brands Pinterest icon class"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": ".fa-arrow-up-right",
|
|
42
|
+
"description": "FontAwesome arrow up right icon class"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": ".fa-arrow-up-right-from-square",
|
|
46
|
+
"description": "FontAwesome arrow up right from square icon class"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": ".fa-2x",
|
|
50
|
+
"description": "FontAwesome 2x extra large icon size class"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": ".fa-lg",
|
|
54
|
+
"description": "FontAwesome large icon size class"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": ".fa-sm",
|
|
58
|
+
"description": "FontAwesome small icon size class"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": ".fa-xs",
|
|
62
|
+
"description": "FontAwesome extra small icon size class"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": ".fa-2xs",
|
|
66
|
+
"description": "FontAwesome 2x extra small icon size class"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
// Editor settings
|
|
3
|
+
"editor.defaultFoldingRangeProvider": "esbenp.prettier-vscode",
|
|
4
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
5
|
+
"[markdown]": {
|
|
6
|
+
"editor.defaultFoldingRangeProvider": "esbenp.prettier-vscode",
|
|
7
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
8
|
+
},
|
|
9
|
+
"[json]": {
|
|
10
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
11
|
+
},
|
|
12
|
+
"[jsonc]": {
|
|
13
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
14
|
+
},
|
|
15
|
+
// ESLint configuration
|
|
16
|
+
"eslint.workingDirectories": ["D:\\Netwk-Pro\\git\\blog"],
|
|
17
|
+
"eslint.validate": ["html", "javascript", "javascriptreact", "json", "jsonc"],
|
|
18
|
+
"eslint.lintTask.enable": true,
|
|
19
|
+
"eslint.lintTask.options": "--ext .mjs,.js,.json,.jsonc --config eslint.config.mjs .",
|
|
20
|
+
"eslint.useESLintClass": true,
|
|
21
|
+
"eslint.useFlatConfig": true,
|
|
22
|
+
"eslint.codeActionsOnSave.mode": "problems",
|
|
23
|
+
"eslint.probe": ["javascript", "javascriptreact", "html", "json", "jsonc"],
|
|
24
|
+
// Stylelint configuration
|
|
25
|
+
"stylelint.configBasedir": "D:\\Netwk-Pro\\git\\blog",
|
|
26
|
+
"stylelint.configFile": "stylelint.config.js",
|
|
27
|
+
"stylelint.customSyntax": "postcss-html",
|
|
28
|
+
"stylelint.validate": ["css", "postcss", "html"],
|
|
29
|
+
// Custom CSS data for FontAwesome classes
|
|
30
|
+
"css.customData": [
|
|
31
|
+
".vscode/customData.json" // Path to your custom data file
|
|
32
|
+
],
|
|
33
|
+
// Locations of CSS files for validation
|
|
34
|
+
"css.styleSheets": ["**/*.css", "src/stylesheets/*.css"],
|
|
35
|
+
"files.associations": {
|
|
36
|
+
"/img/*": "html"
|
|
37
|
+
},
|
|
38
|
+
"markdown.validate.enabled": false,
|
|
39
|
+
"markdown.validate.ignoredLinks": []
|
|
40
|
+
}
|