@nguyenphp/antigravity-marketing 1.0.18 → 1.0.19
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/README.md +186 -78
- package/package.json +4 -3
- package/templates/.agent/skills/marketing-report-expert/SKILL.md +70 -0
- package/templates/.agent/skills/minimax-docx/LICENSE +21 -0
- package/templates/.agent/skills/minimax-docx/SKILL.md +274 -0
- package/templates/.agent/skills/minimax-docx/assets/styles/academic_styles.xml +250 -0
- package/templates/.agent/skills/minimax-docx/assets/styles/corporate_styles.xml +284 -0
- package/templates/.agent/skills/minimax-docx/assets/styles/default_styles.xml +449 -0
- package/templates/.agent/skills/minimax-docx/assets/xsd/aesthetic-rules.xsd +470 -0
- package/templates/.agent/skills/minimax-docx/assets/xsd/business-rules.xsd +130 -0
- package/templates/.agent/skills/minimax-docx/assets/xsd/common-types.xsd +159 -0
- package/templates/.agent/skills/minimax-docx/assets/xsd/wml-subset.xsd +589 -0
- package/templates/.agent/skills/minimax-docx/references/cjk_typography.md +357 -0
- package/templates/.agent/skills/minimax-docx/references/cjk_university_template_guide.md +184 -0
- package/templates/.agent/skills/minimax-docx/references/comments_guide.md +191 -0
- package/templates/.agent/skills/minimax-docx/references/design_good_bad_examples.md +829 -0
- package/templates/.agent/skills/minimax-docx/references/design_principles.md +819 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_element_order.md +308 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part1.md +4061 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part2.md +2820 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part3.md +3381 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_namespaces.md +82 -0
- package/templates/.agent/skills/minimax-docx/references/openxml_units.md +72 -0
- package/templates/.agent/skills/minimax-docx/references/scenario_a_create.md +284 -0
- package/templates/.agent/skills/minimax-docx/references/scenario_b_edit_content.md +295 -0
- package/templates/.agent/skills/minimax-docx/references/scenario_c_apply_template.md +456 -0
- package/templates/.agent/skills/minimax-docx/references/track_changes_guide.md +200 -0
- package/templates/.agent/skills/minimax-docx/references/troubleshooting.md +506 -0
- package/templates/.agent/skills/minimax-docx/references/typography_guide.md +294 -0
- package/templates/.agent/skills/minimax-docx/references/xsd_validation_guide.md +158 -0
- package/templates/.agent/skills/minimax-docx/scripts/doc_to_docx.sh +40 -0
- package/templates/.agent/skills/minimax-docx/scripts/docx_preview.sh +37 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
- package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
- package/templates/.agent/skills/minimax-docx/scripts/env_check.sh +196 -0
- package/templates/.agent/skills/minimax-docx/scripts/setup.ps1 +274 -0
- package/templates/.agent/skills/minimax-docx/scripts/setup.sh +504 -0
- package/templates/.agent/skills/minimax-multimodal-toolkit/SKILL.md +359 -0
- package/templates/.agent/skills/minimax-pdf/README.md +222 -0
- package/templates/.agent/skills/minimax-pdf/SKILL.md +201 -0
- package/templates/.agent/skills/minimax-pdf/design/design.md +381 -0
- package/templates/.agent/skills/minimax-pdf/scripts/cover.py +1579 -0
- package/templates/.agent/skills/minimax-pdf/scripts/fill_inspect.py +200 -0
- package/templates/.agent/skills/minimax-pdf/scripts/fill_write.py +242 -0
- package/templates/.agent/skills/minimax-pdf/scripts/make.sh +491 -0
- package/templates/.agent/skills/minimax-pdf/scripts/merge.py +112 -0
- package/templates/.agent/skills/minimax-pdf/scripts/palette.py +559 -0
- package/templates/.agent/skills/minimax-pdf/scripts/reformat_parse.py +374 -0
- package/templates/.agent/skills/minimax-pdf/scripts/render_body.py +1055 -0
- package/templates/.agent/skills/minimax-pdf/scripts/render_cover.cjs +111 -0
- package/templates/.agent/skills/minimax-xlsx/SKILL.md +138 -0
- package/templates/.agent/skills/minimax-xlsx/references/create.md +691 -0
- package/templates/.agent/skills/minimax-xlsx/references/edit.md +684 -0
- package/templates/.agent/skills/minimax-xlsx/references/fix.md +37 -0
- package/templates/.agent/skills/minimax-xlsx/references/format.md +768 -0
- package/templates/.agent/skills/minimax-xlsx/references/ooxml-cheatsheet.md +231 -0
- package/templates/.agent/skills/minimax-xlsx/references/read-analyze.md +97 -0
- package/templates/.agent/skills/minimax-xlsx/references/validate.md +772 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/formula_check.py +422 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/libreoffice_recalc.py +248 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/shared_strings_builder.py +163 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/style_audit.py +575 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_add_column.py +395 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_insert_row.py +274 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_pack.py +87 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_reader.py +362 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_shift_rows.py +396 -0
- package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_unpack.py +130 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/[Content_Types].xml +9 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/_rels/.rels +6 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +19 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +33 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/styles.xml +160 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/workbook.xml +30 -0
- package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +70 -0
- package/templates/.agent/skills/pptx-generator/SKILL.md +249 -0
- package/templates/.agent/skills/pptx-generator/references/design-system.md +392 -0
- package/templates/.agent/skills/pptx-generator/references/editing.md +162 -0
- package/templates/.agent/skills/pptx-generator/references/pitfalls.md +112 -0
- package/templates/.agent/skills/pptx-generator/references/pptxgenjs.md +420 -0
- package/templates/.agent/skills/pptx-generator/references/slide-types.md +413 -0
- package/templates/.agent/skills/tutorial-video-expert/SKILL.md +88 -0
- package/templates/.agent/skills/ui-ux-pro-max/SKILL.md +170 -585
- package/templates/.agent/skills/vision-analysis/SKILL.md +174 -0
- package/templates/.agent/workflows/analyze.md +3 -0
- package/templates/.agent/workflows/brand-report.md +44 -0
- package/templates/.agent/workflows/report.md +49 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
"""
|
|
4
|
+
shared_strings_builder.py — Generate a valid sharedStrings.xml from a list of strings.
|
|
5
|
+
|
|
6
|
+
Usage (strings as command-line arguments):
|
|
7
|
+
python3 shared_strings_builder.py "Revenue" "Cost" "Gross Profit" > sharedStrings.xml
|
|
8
|
+
|
|
9
|
+
Usage (strings from a file, one per line):
|
|
10
|
+
python3 shared_strings_builder.py --file strings.txt > sharedStrings.xml
|
|
11
|
+
|
|
12
|
+
Usage (print index table instead of XML, for reference):
|
|
13
|
+
python3 shared_strings_builder.py --index "Revenue" "Cost" "Gross Profit"
|
|
14
|
+
python3 shared_strings_builder.py --index --file strings.txt
|
|
15
|
+
|
|
16
|
+
Output format:
|
|
17
|
+
Valid xl/sharedStrings.xml written to stdout.
|
|
18
|
+
Redirect to the correct path:
|
|
19
|
+
python3 shared_strings_builder.py "A" "B" > /tmp/xlsx_work/xl/sharedStrings.xml
|
|
20
|
+
|
|
21
|
+
Notes:
|
|
22
|
+
- Strings are de-duplicated: identical strings appear only once in the table.
|
|
23
|
+
- The 'count' attribute equals the number of unique strings (appropriate for new files
|
|
24
|
+
where each string is used in exactly one cell). If a string appears in multiple cells,
|
|
25
|
+
manually increment 'count' by the number of extra references.
|
|
26
|
+
- Special characters (&, <, >) are automatically XML-escaped.
|
|
27
|
+
- Leading/trailing spaces are preserved with xml:space="preserve".
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
import sys
|
|
31
|
+
import html
|
|
32
|
+
import argparse
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
HEADER = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
|
|
36
|
+
SST_NS = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def escape_text(s: str) -> tuple[str, bool]:
|
|
40
|
+
"""
|
|
41
|
+
Return (escaped_text, needs_preserve).
|
|
42
|
+
needs_preserve is True if the string has leading or trailing whitespace.
|
|
43
|
+
"""
|
|
44
|
+
escaped = html.escape(s, quote=False)
|
|
45
|
+
needs_preserve = s != s.strip()
|
|
46
|
+
return escaped, needs_preserve
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def build_xml(strings: list[str]) -> str:
|
|
50
|
+
"""Build sharedStrings.xml content from a list of unique strings."""
|
|
51
|
+
n = len(strings)
|
|
52
|
+
lines = [
|
|
53
|
+
HEADER,
|
|
54
|
+
f'<sst xmlns="{SST_NS}" count="{n}" uniqueCount="{n}">',
|
|
55
|
+
]
|
|
56
|
+
for i, s in enumerate(strings):
|
|
57
|
+
escaped, preserve = escape_text(s)
|
|
58
|
+
if preserve:
|
|
59
|
+
lines.append(f' <si><t xml:space="preserve">{escaped}</t></si>'
|
|
60
|
+
f' <!-- index {i} -->')
|
|
61
|
+
else:
|
|
62
|
+
lines.append(f' <si><t>{escaped}</t></si> <!-- index {i} -->')
|
|
63
|
+
lines.append("</sst>")
|
|
64
|
+
return "\n".join(lines) + "\n"
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def build_index_table(strings: list[str]) -> str:
|
|
68
|
+
"""Return a human-readable index table (for agent reference, not written to file)."""
|
|
69
|
+
lines = [
|
|
70
|
+
f"{'Index':<6} String",
|
|
71
|
+
"-" * 50,
|
|
72
|
+
]
|
|
73
|
+
for i, s in enumerate(strings):
|
|
74
|
+
lines.append(f"{i:<6} {s!r}")
|
|
75
|
+
lines.append("")
|
|
76
|
+
lines.append(
|
|
77
|
+
f"Total: {len(strings)} unique strings. "
|
|
78
|
+
"Use these indices in <c t=\"s\"><v>N</v></c> cells."
|
|
79
|
+
)
|
|
80
|
+
return "\n".join(lines) + "\n"
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def deduplicate(strings: list[str]) -> list[str]:
|
|
84
|
+
"""Remove duplicates while preserving first-occurrence order."""
|
|
85
|
+
seen: set[str] = set()
|
|
86
|
+
result: list[str] = []
|
|
87
|
+
for s in strings:
|
|
88
|
+
if s not in seen:
|
|
89
|
+
seen.add(s)
|
|
90
|
+
result.append(s)
|
|
91
|
+
return result
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def load_from_file(path: str) -> list[str]:
|
|
95
|
+
"""Read one string per non-empty line from a file."""
|
|
96
|
+
with open(path, encoding="utf-8") as f:
|
|
97
|
+
return [line.rstrip("\n") for line in f if line.strip()]
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def main() -> None:
|
|
101
|
+
parser = argparse.ArgumentParser(
|
|
102
|
+
description="Generate xl/sharedStrings.xml from a list of strings.",
|
|
103
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
104
|
+
epilog=__doc__,
|
|
105
|
+
)
|
|
106
|
+
parser.add_argument(
|
|
107
|
+
"strings",
|
|
108
|
+
nargs="*",
|
|
109
|
+
metavar="STRING",
|
|
110
|
+
help="String values to include in the shared string table.",
|
|
111
|
+
)
|
|
112
|
+
parser.add_argument(
|
|
113
|
+
"--file",
|
|
114
|
+
"-f",
|
|
115
|
+
metavar="PATH",
|
|
116
|
+
help="Read strings from a file (one string per line) instead of arguments.",
|
|
117
|
+
)
|
|
118
|
+
parser.add_argument(
|
|
119
|
+
"--index",
|
|
120
|
+
action="store_true",
|
|
121
|
+
help="Print a human-readable index table instead of XML output.",
|
|
122
|
+
)
|
|
123
|
+
args = parser.parse_args()
|
|
124
|
+
|
|
125
|
+
if args.file:
|
|
126
|
+
try:
|
|
127
|
+
raw = load_from_file(args.file)
|
|
128
|
+
except FileNotFoundError:
|
|
129
|
+
print(f"ERROR: File not found: {args.file}", file=sys.stderr)
|
|
130
|
+
sys.exit(1)
|
|
131
|
+
except OSError as e:
|
|
132
|
+
print(f"ERROR: Cannot read file: {e}", file=sys.stderr)
|
|
133
|
+
sys.exit(1)
|
|
134
|
+
else:
|
|
135
|
+
raw = list(args.strings)
|
|
136
|
+
|
|
137
|
+
if not raw:
|
|
138
|
+
print(
|
|
139
|
+
"ERROR: No strings provided.\n"
|
|
140
|
+
"Usage: shared_strings_builder.py \"String1\" \"String2\" ...\n"
|
|
141
|
+
" or: shared_strings_builder.py --file strings.txt",
|
|
142
|
+
file=sys.stderr,
|
|
143
|
+
)
|
|
144
|
+
sys.exit(1)
|
|
145
|
+
|
|
146
|
+
strings = deduplicate(raw)
|
|
147
|
+
|
|
148
|
+
if len(strings) < len(raw):
|
|
149
|
+
removed = len(raw) - len(strings)
|
|
150
|
+
print(
|
|
151
|
+
f"Note: {removed} duplicate(s) removed. "
|
|
152
|
+
f"{len(strings)} unique strings in table.",
|
|
153
|
+
file=sys.stderr,
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
if args.index:
|
|
157
|
+
print(build_index_table(strings))
|
|
158
|
+
else:
|
|
159
|
+
print(build_xml(strings), end="")
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
if __name__ == "__main__":
|
|
163
|
+
main()
|