itismyskillmarket 1.3.29 → 1.3.30
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/dist/index.js +6 -6
- package/gui/app.js +25 -0
- package/gui/index.html +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1172,11 +1172,11 @@ Uninstalling all skills...
|
|
|
1172
1172
|
import fs12 from "fs-extra";
|
|
1173
1173
|
import path11 from "path";
|
|
1174
1174
|
var GITHUB_URL_PATTERNS = [
|
|
1175
|
-
/^https?:\/\/github\.com\/([^/]+)\/([^/]
|
|
1176
|
-
/^([^/]+)\/([
|
|
1175
|
+
/^https?:\/\/github\.com\/([^/]+)\/([^/]+?)(?:\/tree\/([^/]+)(?:\/(.+))?)?$/,
|
|
1176
|
+
/^([^/]+)\/([^/@]+)@(.+)$/,
|
|
1177
|
+
// owner/repo@commit (must come before # pattern)
|
|
1178
|
+
/^([^/]+)\/([^/#]+)(?:#(.+))?$/
|
|
1177
1179
|
// owner/repo#branch
|
|
1178
|
-
/^([^/]+)\/([^/]+)@(.+)$/
|
|
1179
|
-
// owner/repo@commit
|
|
1180
1180
|
];
|
|
1181
1181
|
function parseGitHubUrl(input) {
|
|
1182
1182
|
input = input.replace(/\/$/, "");
|
|
@@ -1187,7 +1187,7 @@ function parseGitHubUrl(input) {
|
|
|
1187
1187
|
const repo = match[2].replace(/\.git$/, "");
|
|
1188
1188
|
const branch = match[3] || "main";
|
|
1189
1189
|
const commitOrPath = match[4] || match[3];
|
|
1190
|
-
const path14 = match[
|
|
1190
|
+
const path14 = match[4] || void 0;
|
|
1191
1191
|
return {
|
|
1192
1192
|
owner,
|
|
1193
1193
|
repo,
|
|
@@ -1438,7 +1438,7 @@ import { join as join2 } from "path";
|
|
|
1438
1438
|
import { fileURLToPath } from "url";
|
|
1439
1439
|
async function publishSkill(skillName, options) {
|
|
1440
1440
|
const __dirname4 = fileURLToPath(new URL(".", import.meta.url));
|
|
1441
|
-
const projectRoot = join2(__dirname4, ".."
|
|
1441
|
+
const projectRoot = join2(__dirname4, "..");
|
|
1442
1442
|
const skillDir = join2(projectRoot, "skills", skillName);
|
|
1443
1443
|
console.log(`Publishing ${skillName}...`);
|
|
1444
1444
|
if (!existsSync2(skillDir)) {
|
package/gui/app.js
CHANGED
|
@@ -601,6 +601,31 @@ function applyI18nToStaticElements() {
|
|
|
601
601
|
if (refreshAdmin) refreshAdmin.innerHTML = `🔄 ${t('btn.refresh')}`;
|
|
602
602
|
if (updateAll) updateAll.innerHTML = `🔄 ${t('btn.updateAll')}`;
|
|
603
603
|
if (backBtn) backBtn.innerHTML = `← ${t('nav.back')}`;
|
|
604
|
+
|
|
605
|
+
// Upload 视图静态文本
|
|
606
|
+
const uploadDropzoneText = document.getElementById('upload-dropzone-text');
|
|
607
|
+
const uploadDropzoneHint = document.getElementById('upload-dropzone-hint');
|
|
608
|
+
const uploadSelectBtn = document.getElementById('upload-select-btn');
|
|
609
|
+
const uploadSkillNameLabel = document.getElementById('upload-skill-name-label');
|
|
610
|
+
const uploadSkillNameInput = document.getElementById('upload-skill-name');
|
|
611
|
+
const uploadSubmitBtn = document.getElementById('upload-submit-btn');
|
|
612
|
+
const uploadActionPublish = document.getElementById('upload-action-publish');
|
|
613
|
+
const uploadActionInstall = document.getElementById('upload-action-install');
|
|
614
|
+
const uploadActionBoth = document.getElementById('upload-action-both');
|
|
615
|
+
const uploadActionDiscard = document.getElementById('upload-action-discard');
|
|
616
|
+
const uploadProgressText = document.getElementById('upload-progress-text');
|
|
617
|
+
|
|
618
|
+
if (uploadDropzoneText) uploadDropzoneText.textContent = t('upload.dropzoneText');
|
|
619
|
+
if (uploadDropzoneHint) uploadDropzoneHint.textContent = t('upload.dropzoneHint');
|
|
620
|
+
if (uploadSelectBtn) uploadSelectBtn.textContent = t('upload.chooseFile');
|
|
621
|
+
if (uploadSkillNameLabel) uploadSkillNameLabel.textContent = t('upload.skillNameLabel');
|
|
622
|
+
if (uploadSkillNameInput) uploadSkillNameInput.placeholder = t('upload.skillNamePlaceholder');
|
|
623
|
+
if (uploadSubmitBtn) uploadSubmitBtn.innerHTML = t('upload.uploadParse');
|
|
624
|
+
if (uploadActionPublish) uploadActionPublish.innerHTML = t('upload.actionPublish');
|
|
625
|
+
if (uploadActionInstall) uploadActionInstall.innerHTML = t('upload.actionInstall');
|
|
626
|
+
if (uploadActionBoth) uploadActionBoth.innerHTML = t('upload.actionBoth');
|
|
627
|
+
if (uploadActionDiscard) uploadActionDiscard.innerHTML = t('upload.actionDiscard');
|
|
628
|
+
if (uploadProgressText) uploadProgressText.textContent = t('upload.processing');
|
|
604
629
|
}
|
|
605
630
|
|
|
606
631
|
// -----------------------------------------------------------------------------
|
package/gui/index.html
CHANGED
|
@@ -104,13 +104,13 @@
|
|
|
104
104
|
<div id="upload-phase1" class="upload-phase">
|
|
105
105
|
<div class="upload-dropzone" id="upload-dropzone">
|
|
106
106
|
<div class="upload-dropzone-icon">📦</div>
|
|
107
|
-
<p class="upload-dropzone-text">Drop a skill .zip file here, or click to select</p>
|
|
108
|
-
<p class="upload-dropzone-hint">The zip should contain SKILL.md and optionally package.json</p>
|
|
107
|
+
<p class="upload-dropzone-text" id="upload-dropzone-text">Drop a skill .zip file here, or click to select</p>
|
|
108
|
+
<p class="upload-dropzone-hint" id="upload-dropzone-hint">The zip should contain SKILL.md and optionally package.json</p>
|
|
109
109
|
<input type="file" id="upload-file-input" accept=".zip" style="display:none">
|
|
110
110
|
<button id="upload-select-btn" class="btn btn-primary" style="margin-top:12px;">Choose File</button>
|
|
111
111
|
</div>
|
|
112
112
|
<div class="upload-skill-name-input">
|
|
113
|
-
<label for="upload-skill-name">Skill Name</label>
|
|
113
|
+
<label for="upload-skill-name" id="upload-skill-name-label">Skill Name</label>
|
|
114
114
|
<input type="text" id="upload-skill-name" placeholder="Auto-detected from zip, or override here">
|
|
115
115
|
</div>
|
|
116
116
|
<button id="upload-submit-btn" class="btn btn-success" disabled style="align-self:center;margin-top:8px;">
|