Skip to content

Commit 61e9cb1

Browse files
vveerrggclaude
andcommitted
fix: add Safari anchor deep-links, named-window targets, and missing nostr-keys resource
Address Apple review feedback (Guideline 2.1 — extension not loading content): - Add nostr-keys/ folder to Xcode project for both iOS and macOS extension targets so "Manage Nostr Keys" page loads on iPad/iPhone - Deep-link macOS app Support URL to support.html#safari - Add id anchors to 6 Safari subsections in support.html - Add target="nostrkey-web" to all external links across docs pages so they reuse one browser tab instead of opening new tabs each click - Replace existing target="_blank" with target="nostrkey-web" on 3 links - Add scroll-behavior:smooth to support.html Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent cc50d79 commit 61e9cb1

7 files changed

Lines changed: 54 additions & 48 deletions

File tree

apple/NostrKey.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@
9797
A1000005000000000000000B /* security in Resources */ = {isa = PBXBuildFile; fileRef = A10000050000000000000013 /* security */; };
9898
A1000006000000000000000A /* vault in Resources */ = {isa = PBXBuildFile; fileRef = A10000060000000000000014 /* vault */; };
9999
A1000006000000000000000B /* vault in Resources */ = {isa = PBXBuildFile; fileRef = A10000060000000000000014 /* vault */; };
100+
A1000007000000000000000A /* nostr-keys in Resources */ = {isa = PBXBuildFile; fileRef = A10000070000000000000015 /* nostr-keys */; };
101+
A1000007000000000000000B /* nostr-keys in Resources */ = {isa = PBXBuildFile; fileRef = A10000070000000000000015 /* nostr-keys */; };
100102
B1000003000000000000000A /* SharedStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1000001000000000000000A /* SharedStorage.swift */; };
101103
B1000003000000000000000B /* SharedStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1000001000000000000000A /* SharedStorage.swift */; };
102104
B1000004000000000000000A /* SharedKeychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1000002000000000000000A /* SharedKeychain.swift */; };
@@ -201,6 +203,7 @@
201203
A10000040000000000000012 /* api-keys */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "api-keys"; sourceTree = "<group>"; };
202204
A10000050000000000000013 /* security */ = {isa = PBXFileReference; lastKnownFileType = folder; path = security; sourceTree = "<group>"; };
203205
A10000060000000000000014 /* vault */ = {isa = PBXFileReference; lastKnownFileType = folder; path = vault; sourceTree = "<group>"; };
206+
A10000070000000000000015 /* nostr-keys */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "nostr-keys"; sourceTree = "<group>"; };
204207
/* End PBXFileReference section */
205208

206209
/* Begin PBXFrameworksBuildPhase section */
@@ -312,6 +315,7 @@
312315
A10000040000000000000012 /* api-keys */,
313316
A10000050000000000000013 /* security */,
314317
A10000060000000000000014 /* vault */,
318+
A10000070000000000000015 /* nostr-keys */,
315319
);
316320
name = src;
317321
path = ../distros/safari;
@@ -563,6 +567,7 @@
563567
A1000004000000000000000A /* api-keys in Resources */,
564568
A1000005000000000000000A /* security in Resources */,
565569
A1000006000000000000000A /* vault in Resources */,
570+
A1000007000000000000000A /* nostr-keys in Resources */,
566571
);
567572
runOnlyForDeploymentPostprocessing = 0;
568573
};
@@ -606,6 +611,7 @@
606611
A1000004000000000000000B /* api-keys in Resources */,
607612
A1000005000000000000000B /* security in Resources */,
608613
A1000006000000000000000B /* vault in Resources */,
614+
A1000007000000000000000B /* nostr-keys in Resources */,
609615
);
610616
runOnlyForDeploymentPostprocessing = 0;
611617
};

apple/Shared (App)/MainView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ struct MainView: View {
148148
// Link cards
149149
VStack(spacing: 8) {
150150
// Support — full width
151-
LinkCard(title: "Support", subtitle: "Installation guides & troubleshooting", icon: "questionmark.circle", url: "https://nostrkey.com/support.html")
151+
LinkCard(title: "Support", subtitle: "Installation guides & troubleshooting", icon: "questionmark.circle", url: "https://nostrkey.com/support.html#safari")
152152

153153
// Source Code — full width
154154
LinkCard(title: "Source Code", subtitle: "View on GitHub — fully auditable", icon: "chevron.left.forwardslash.chevron.right", url: "https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src")

docs/index.html

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ <h1>NostrKey</h1>
321321
<p class="tagline">Cross-browser Nostr key management, encrypted vault, and identity layer</p>
322322

323323
<div class="badges">
324-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" class="badge">
324+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="nostrkey-web" class="badge">
325325
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg>
326326
GitHub
327327
</a>
@@ -378,30 +378,30 @@ <h4>🔓 Open Source</h4>
378378
<h2>Download & Install</h2>
379379

380380
<div class="download-grid">
381-
<a href="https://chromewebstore.google.com/detail/nostrkey/cggakcmbihnpmcddkkfmoglgaocnmaop" class="download-card">
381+
<a href="https://chromewebstore.google.com/detail/nostrkey/cggakcmbihnpmcddkkfmoglgaocnmaop" target="nostrkey-web" class="download-card">
382382
<svg viewBox="0 0 24 24" fill="#4285F4"><circle cx="12" cy="12" r="10"/><path fill="#fff" d="M12 6a6 6 0 100 12 6 6 0 000-12zm0 10.5a4.5 4.5 0 110-9 4.5 4.5 0 010 9z"/></svg>
383383
<h4>Chrome</h4>
384384
<p>Chrome Web Store</p>
385385
</a>
386-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/releases/latest" class="download-card">
386+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/releases/latest" target="nostrkey-web" class="download-card">
387387
<svg viewBox="0 0 24 24" fill="#0066CC"><rect width="24" height="24" rx="5" fill="#0066CC"/><text x="12" y="17" text-anchor="middle" fill="white" font-size="14" font-weight="bold">S</text></svg>
388388
<h4>Safari (macOS)</h4>
389389
<p>Xcode build</p>
390390
</a>
391-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/releases/latest" class="download-card">
391+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/releases/latest" target="nostrkey-web" class="download-card">
392392
<svg viewBox="0 0 24 24" fill="#147EFB"><rect width="24" height="24" rx="5" fill="#147EFB"/><rect x="7" y="3" width="10" height="18" rx="2" fill="white"/></svg>
393393
<h4>Safari (iOS)</h4>
394394
<p>Xcode build</p>
395395
</a>
396396
</div>
397397

398398
<h3>Chrome Installation</h3>
399-
<p>Install directly from the <a href="https://chromewebstore.google.com/detail/nostrkey/cggakcmbihnpmcddkkfmoglgaocnmaop" style="color: var(--accent);">Chrome Web Store</a> — works on Chrome, Edge, Brave, Opera, Vivaldi, and Arc.</p>
399+
<p>Install directly from the <a href="https://chromewebstore.google.com/detail/nostrkey/cggakcmbihnpmcddkkfmoglgaocnmaop" target="nostrkey-web" style="color: var(--accent);">Chrome Web Store</a> — works on Chrome, Edge, Brave, Opera, Vivaldi, and Arc.</p>
400400

401401
<h3>Chrome Sideload (Developer Mode)</h3>
402402
<p style="color: var(--text-muted); font-size: 0.875rem;">Prefer the latest GitHub build or want to hack on NostrKey? You can load it manually:</p>
403403
<ol style="list-style: decimal; padding-left: 24px;">
404-
<li style="padding-left: 8px;">Download <code>nostrkey-chrome-v*.zip</code> from the <a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/releases/latest" style="color: var(--accent);">latest release</a></li>
404+
<li style="padding-left: 8px;">Download <code>nostrkey-chrome-v*.zip</code> from the <a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/releases/latest" target="nostrkey-web" style="color: var(--accent);">latest release</a></li>
405405
<li style="padding-left: 8px;">Unzip the file</li>
406406
<li style="padding-left: 8px;">Open <code>chrome://extensions/</code> in Chrome</li>
407407
<li style="padding-left: 8px;">Enable <strong>Developer mode</strong> (top right toggle)</li>
@@ -447,11 +447,11 @@ <h2>Development</h2>
447447
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 015.83 1c0 2-3 3-3 3m.08 4h.01"/></svg>
448448
Browser Support
449449
</a>
450-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" class="btn btn-secondary">
450+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="nostrkey-web" class="btn btn-secondary">
451451
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg>
452452
View on GitHub
453453
</a>
454-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/issues" class="btn btn-secondary">
454+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/issues" target="nostrkey-web" class="btn btn-secondary">
455455
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><path d="M12 8v4m0 4h.01"/></svg>
456456
Report Issue
457457
</a>
@@ -475,15 +475,15 @@ <h2>NIPs Supported</h2>
475475
<section>
476476
<h2>No Cryptocurrency or Token</h2>
477477
<p>
478-
NostrKey and Humanjava Enterprises Inc. do not have a cryptocurrency, token, or coin. Nor will there be one. If anyone suggests otherwise, they are acting fraudulently. <a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/issues" style="color: var(--accent-secondary);">Report scams</a>.
478+
NostrKey and Humanjava Enterprises Inc. do not have a cryptocurrency, token, or coin. Nor will there be one. If anyone suggests otherwise, they are acting fraudulently. <a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/issues" target="nostrkey-web" style="color: var(--accent-secondary);">Report scams</a>.
479479
</p>
480480
</section>
481481
</div>
482482

483483
<footer>
484484
<p>
485-
Created by <a href="https://humanjava.com">Humanjava Enterprises Inc</a> ·
486-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src">Source Code</a> ·
485+
Created by <a href="https://humanjava.com" target="nostrkey-web">Humanjava Enterprises Inc</a> ·
486+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="nostrkey-web">Source Code</a> ·
487487
<a href="license.html">MIT License</a>
488488
</p>
489489
<p style="margin-top: 8px;">

docs/license.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ <h2>Source Code</h2>
198198
The complete source code for NostrKey is publicly available:
199199
</p>
200200
<p>
201-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="_blank">
201+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="nostrkey-web">
202202
https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src
203203
</a>
204204
</p>
@@ -207,8 +207,8 @@ <h2>Source Code</h2>
207207

208208
<footer>
209209
<p>
210-
A product by <a href="https://humanjava.com">Humanjava Enterprises Inc</a> ·
211-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src">Source Code</a> ·
210+
A product by <a href="https://humanjava.com" target="nostrkey-web">Humanjava Enterprises Inc</a> ·
211+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="nostrkey-web">Source Code</a> ·
212212
<a href="license.html">MIT License</a>
213213
</p>
214214
<p style="margin-top: 8px;">

docs/privacy.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ <h2>Open Source</h2>
388388
NostrKey is open source software. You can review the complete source code at:
389389
</p>
390390
<p>
391-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="_blank">
391+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="nostrkey-web">
392392
https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src
393393
</a>
394394
</p>
@@ -420,9 +420,9 @@ <h2>Contact Information</h2>
420420

421421
<p>
422422
<strong>Humanjava Enterprises Inc</strong><br>
423-
Website: <a href="https://humanjava.com">humanjava.com</a><br>
424-
GitHub: <a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src">NostrKey Repository</a><br>
425-
Issues: <a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/issues">GitHub Issues</a>
423+
Website: <a href="https://humanjava.com" target="nostrkey-web">humanjava.com</a><br>
424+
GitHub: <a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="nostrkey-web">NostrKey Repository</a><br>
425+
Issues: <a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src/issues" target="nostrkey-web">GitHub Issues</a>
426426
</p>
427427
</section>
428428

@@ -446,8 +446,8 @@ <h2>Legal Compliance</h2>
446446

447447
<footer>
448448
<p>
449-
A product by <a href="https://humanjava.com">Humanjava Enterprises Inc</a> ·
450-
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src">Source Code</a> ·
449+
A product by <a href="https://humanjava.com" target="nostrkey-web">Humanjava Enterprises Inc</a> ·
450+
<a href="https://github.com/HumanjavaEnterprises/nostrkey.browser.plugin.src" target="nostrkey-web">Source Code</a> ·
451451
<a href="license.html">MIT License</a>
452452
</p>
453453
<p style="margin-top: 8px;">

0 commit comments

Comments
 (0)