Skip to content

Scan your markdown files for unsafe urls and remove them so you don't get spread bad stuff!

License

Notifications You must be signed in to change notification settings

markbattistella/markdown-safe-link

Repository files navigation

Markdown Safe Web Browsing

Help donate Buy me a coffee


Background

I started with this tweet by @seanallen where he added a URL into a YouTube video description.

The URL became compromised within the week of adding it, and his channel was flagged with strike 1.

I realised there isn't anything out there to prevent this from happening to anyone's repository.

Usage

  1. Install the module from npm

    # locally
    npm i @markbattistella/markdown-safe-link
    
    # globally
    npm i @markbattistella/markdown-safe-link -g
  2. Run it from your terminal

    markdown-safe-link \
        --api="<YOUR_API_KEY_HERE>" \
        --dir="~/projects/my-docs/" \
        --replace="~~UNSAFE~~"

Github action

If you want to use this as part of your repository there is also an action you can use.

Requirements

You need to get your own API for Google Safe Browsing as there are limits to the number of calls made.

Configuration

Name Description
dir The directory to scan md files
api Google API for scanning URLs
replace What to replace the URLs with
proxy Are you behind a proxy server
url Proxy url address or IP address
port Proxy port number
username Username if your proxy has auth
password Password if your proxy has auth
dry Don't actually re-write files
help Display the help screen

Full command line

markdown-safe-link \
  --api="<YOUR_API_KEY_HERE>" \
  --dir="~/projects/my-docs/" \
  --replace="~~UNSAFE~~"      \
  --proxy                     \
    --url="127.0.0.1"         \
    --port="3128"             \
    --username="jdoe"         \
    --password="MyPassword"   \
  --dry

Contributing

  1. Clone the repo:

    git clone https://github.com/markbattistella/markdown-safe-link.git

  2. Create your feature branch:

    git checkout -b my-feature

  3. Commit your changes:

    git commit -am 'Add some feature'

  4. Push to the branch:

    git push origin my-new-feature

  5. Submit the pull request