confluence-cli 1.21.0 → 1.22.0

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.
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: confluence
3
+ description: Use confluence-cli to read, search, create, update, move, and delete Confluence pages and attachments from the terminal.
4
+ ---
5
+
1
6
  # confluence-cli Skill
2
7
 
3
8
  A CLI tool for Atlassian Confluence. Lets you read, search, create, update, move, and delete pages and attachments from the terminal or from an agent.
package/README.md CHANGED
@@ -533,12 +533,10 @@ Check out our [Contributing Guide](CONTRIBUTING.md) - all contributions are welc
533
533
 
534
534
  ### 📈 Usage Analytics
535
535
 
536
- To help us understand how confluence-cli is being used and improve it, we collect anonymous usage statistics. This includes:
537
- - Command usage frequency (no personal data)
538
- - Error patterns (to fix bugs faster)
539
- - Feature adoption metrics
536
+ confluence-cli tracks command usage statistics **locally** on your machine (`~/.confluence-cli/stats.json`). No data is sent to any external server. This includes:
537
+ - Command usage counts (success/error)
540
538
 
541
- You can opt-out anytime by setting: `export CONFLUENCE_CLI_ANALYTICS=false`
539
+ You can view your stats with `confluence stats`, or disable tracking by setting: `export CONFLUENCE_CLI_ANALYTICS=false`
542
540
 
543
541
  ---
544
542
 
@@ -5,6 +5,27 @@ const FormData = require('form-data');
5
5
  const { convert } = require('html-to-text');
6
6
  const MarkdownIt = require('markdown-it');
7
7
 
8
+ const NAMED_ENTITIES = {
9
+ // uppercase variants
10
+ aring: 'å', auml: 'ä', ouml: 'ö',
11
+ eacute: 'é', egrave: 'è', ecirc: 'ê', euml: 'ë',
12
+ aacute: 'á', agrave: 'à', acirc: 'â', atilde: 'ã',
13
+ oacute: 'ó', ograve: 'ò', ocirc: 'ô', otilde: 'õ',
14
+ uacute: 'ú', ugrave: 'ù', ucirc: 'û', uuml: 'ü',
15
+ iacute: 'í', igrave: 'ì', icirc: 'î', iuml: 'ï',
16
+ ntilde: 'ñ', ccedil: 'ç', szlig: 'ß', yuml: 'ÿ',
17
+ eth: 'ð', thorn: 'þ',
18
+ // uppercase variants
19
+ Aring: 'Å', Auml: 'Ä', Ouml: 'Ö',
20
+ Eacute: 'É', Egrave: 'È', Ecirc: 'Ê', Euml: 'Ë',
21
+ Aacute: 'Á', Agrave: 'À', Acirc: 'Â', Atilde: 'Ã',
22
+ Oacute: 'Ó', Ograve: 'Ò', Ocirc: 'Ô', Otilde: 'Õ',
23
+ Uacute: 'Ú', Ugrave: 'Ù', Ucirc: 'Û', Uuml: 'Ü',
24
+ Iacute: 'Í', Igrave: 'Ì', Icirc: 'Î', Iuml: 'Ï',
25
+ Ntilde: 'Ñ', Ccedil: 'Ç', Szlig: 'SS', Yuml: 'Ÿ',
26
+ Eth: 'Ð', Thorn: 'Þ'
27
+ };
28
+
8
29
  class ConfluenceClient {
9
30
  constructor(config) {
10
31
  this.domain = config.domain;
@@ -1472,6 +1493,9 @@ class ConfluenceClient {
1472
1493
  // Numeric HTML entities
1473
1494
  markdown = markdown.replace(/&#(\d+);/g, (_, code) => String.fromCharCode(parseInt(code, 10)));
1474
1495
  markdown = markdown.replace(/&#x([0-9a-fA-F]+);/g, (_, code) => String.fromCharCode(parseInt(code, 16)));
1496
+
1497
+ // Clean up nordic alphabets and other named entities
1498
+ markdown = markdown.replace(/&([a-zA-Z]+);/g, (match, name) => NAMED_ENTITIES[name] || match);
1475
1499
 
1476
1500
  // Clean up extra whitespace for standard Markdown format
1477
1501
  // Remove trailing spaces from each line
@@ -2018,3 +2042,4 @@ class ConfluenceClient {
2018
2042
  }
2019
2043
 
2020
2044
  module.exports = ConfluenceClient;
2045
+ module.exports.NAMED_ENTITIES = NAMED_ENTITIES;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "confluence-cli",
3
- "version": "1.21.0",
3
+ "version": "1.22.0",
4
4
  "description": "A command-line interface for Atlassian Confluence with page creation and editing capabilities",
5
5
  "main": "index.js",
6
6
  "bin": {