Skip to content

Import help.md images locally to eliminate d.pr network requests#232

Merged
schuyler merged 2 commits intomainfrom
claude/issue-231-hCVCU
Dec 30, 2025
Merged

Import help.md images locally to eliminate d.pr network requests#232
schuyler merged 2 commits intomainfrom
claude/issue-231-hCVCU

Conversation

@schuyler
Copy link
Copy Markdown
Owner

Summary

When MacDown 3000 opens for the first time, it triggers unexpected network requests to d.pr because the bundled help.md file references external screenshots hosted on that domain.

This PR:

  • Imports all 7 external images into MacDown/Resources/Images/
  • Updates help.md to use local relative paths instead of external URLs
  • Modifies MPOpenBundledFile() to copy the Images directory alongside bundled markdown files so relative paths work

Related Issue

Related to #231

Changes

File Change
MacDown/Resources/Images/ New directory with 7 bundled images (~605KB total)
MacDown/Resources/help.md Updated 7 image URLs to local paths
MacDown 3000.xcodeproj/project.pbxproj Added Images folder to Copy Bundle Resources
MacDown/Code/Application/MPMainController.m Copy Images directory when opening bundled files

Manual Testing Plan

  1. Build and launch MacDown 3000
  2. Open Help → MacDown Help
  3. Verify all 7 images display correctly
  4. Use network monitoring to confirm no requests to d.pr or macdown.app
  5. Test offline - images should still load from bundle

Image Sources

  • 5 images copied from existing docs/assets/images/
  • 2 images downloaded from d.pr (preferences-general.png, preferences-editor.png)

The help.md file previously referenced 7 external images hosted on
d.pr and macdown.app, which caused unexpected network connection
prompts when opening MacDown 3000 for the first time.

This change:
- Downloads and imports all 7 images into MacDown/Resources/Images/
- Updates help.md to use local relative paths instead of external URLs
- Adds the Images folder to the Xcode project's Copy Bundle Resources

Related to #231
When bundled markdown files (help.md, contribute.md) are opened,
they're copied to a temp directory. This change also copies the
Images directory alongside them so relative image paths work.

Related to #231
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Dec 30, 2025

Code Coverage Report

Current Coverage: 42.37%

Coverage Details (Summary)
Name                                                                                                                                   Coverage            
-------------------------------------------------------------------------------------------------------------------------------------- ------------------- 
MASPreferences.bundle                                                                                                                  0.00% (0/0)         
MacDown 3000.app                                                                                                                       54.27% (6769/12472) 
    /Users/runner/work/macdown3000/macdown3000/MacDown/Code/Utility/MPMathJaxListener.m                                                0.00% (0/26)        
        -[MPMathJaxListener callbacks]                                                                                                 0.00% (0/5)         
        -[MPMathJaxListener addCallback:forKey:]                                                                                       0.00% (0/3)         
        -[MPMathJaxListener invokeCallbackForKey:]                                                                                     0.00% (0/8)         
        +[MPMathJaxListener isSelectorExcludedFromWebScript:]                                                                          0.00% (0/5)         
        +[MPMathJaxListener isKeyExcludedFromWebScript:]                                                                               0.00% (0/5)         
    /Users/runner/work/macdown3000/macdown3000/Dependency/peg-markdown-highlight/HGMarkdownHighlighter.m                               74.60% (417/559)    
        styleparsing_error_callback                                                                                                    0.00% (0/10)        
        -[HGMarkdownHighlighter init]                                                                                                  92.86% (13/14)      
        -[HGMarkdownHighlighter initWithTextView:]                                                                                     83.33% (5/6)        
        -[HGMarkdownHighlighter initWithTextView:waitInterval:]                                                                        83.33% (5/6)        
        -[HGMarkdownHighlighter initWithTextView:waitInterval:styles:]                                                                 0.00% (0/6)         
        -[HGMarkdownHighlighter parseText:]                                                                                            100.00% (9/9)       
        -[HGMarkdownHighlighter convertOffsets:text:]                                                                                  26.19% (11/42)      
        -[HGMarkdownHighlighter requestParsing]                                                                                        100.00% (15/15)     
        __39-[HGMarkdownHighlighter requestParsing]_block_invoke                                                                       100.00% (12/12)     
        __39-[HGMarkdownHighlighter requestParsing]_block_invoke.55                                                                    100.00% (3/3)       
        __39-[HGMarkdownHighlighter requestParsing]_block_invoke.67                                                                    100.00% (4/4)       
        -[HGMarkdownHighlighter getClearFontTraitMask:]                                                                                88.89% (16/18)      
        -[HGMarkdownHighlighter clearHighlightingForRange:]                                                                            100.00% (31/31)     
        __51-[HGMarkdownHighlighter clearHighlightingForRange:]_block_invoke                                                           50.00% (4/8)        
        -[HGMarkdownHighlighter readClearTextStylesFromTextView]                                                                       100.00% (17/17)     
        -[HGMarkdownHighlighter applyHighlighting:withRange:]                                                                          74.67% (56/75)      
        __53-[HGMarkdownHighlighter applyHighlighting:withRange:]_block_invoke                                                         92.31% (12/13)      
        -[HGMarkdownHighlighter applyVisibleRangeHighlighting]                                                                         100.00% (16/16)     
        -[HGMarkdownHighlighter clearHighlighting]                                                                                     100.00% (3/3)       
        -[HGMarkdownHighlighter cacheElementList:]                                                                                     100.00% (6/6)       
        -[HGMarkdownHighlighter clearElementsCache]                                                                                    100.00% (2/2)       
        -[HGMarkdownHighlighter textViewTextDidChange:]                                                                                0.00% (0/11)        
        __47-[HGMarkdownHighlighter textViewTextDidChange:]_block_invoke                                                               0.00% (0/3)         
        -[HGMarkdownHighlighter textViewDidScroll:]                                                                                    27.27% (3/11)       
        __43-[HGMarkdownHighlighter textViewDidScroll:]_block_invoke                                                                   0.00% (0/6)         
        __43-[HGMarkdownHighlighter textViewDidScroll:]_block_invoke_2                                                                 0.00% (0/3)         
        -[HGMarkdownHighlighter getDefaultStyles]                                                                                      100.00% (27/27)     
        -[HGMarkdownHighlighter applyStyleDependenciesToTargetTextView]                                                                85.71% (12/14)      
        -[HGMarkdownHighlighter setStyles:]                                                                                            75.00% (6/8)        
        -[HGMarkdownHighlighter getDefaultSelectedTextAttributes]                                                                      100.00% (7/7)       
        -[HGMarkdownHighlighter handleStyleParsingError:]                                                                              0.00% (0/12)        
        -[HGMarkdownHighlighter applyStylesFromStylesheet:withErrorHandler:]                                                           81.40% (70/86)      
        -[HGMarkdownHighlighter setTargetTextView:]                                                                                    85.71% (6/7)        
        -[HGMarkdownHighlighter parseAndHighlightNow]                                                                                  100.00% (3/3)       
        -[HGMarkdownHighlighter highlightNow]                                                                                          100.00% (3/3)       
        -[HGMarkdownHighlighter activate]                                                                                              91.67% (22/24)      
        -[HGMarkdownHighlighter deactivate]                                                                                            100.00% (18/18)     
    /Users/runner/work/macdown3000/macdown3000/Dependency/peg-markdown-highlight/HGMarkdownHighlightingStyle.m                         87.69% (57/65)      
        +[HGMarkdownHighlightingStyle colorFromARGBColor:]                                                                             100.00% (6/6)       

... (2115 more lines truncated)

📊 **Full coverage report available in workflow artifacts**

@schuyler schuyler merged commit 74c75ff into main Dec 30, 2025
5 checks passed
@schuyler schuyler mentioned this pull request Dec 30, 2025
@schuyler
Copy link
Copy Markdown
Owner Author

Built locally and confirmed that that Help -> MacDown Help loads all images correctly with relative paths and not external URLs.

@schuyler schuyler deleted the claude/issue-231-hCVCU branch December 30, 2025 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants