/unmediumed

Markdown API for Medium

Primary LanguageScalaMIT LicenseMIT

unmediumed

A Markdown API for Medium that deploys to AWS Lambda.

Usage

Change the domain name of a Medium post URL to unmediumed.com to view as Markdown. The http protocol and the medium.com domain will be automatically assumed for medium.com domain posts. For publications with custom domains the full URL should be provided.

# with protocol and medium domain
https://unmediumed.com/https://medium.com/@danielireson/three-tips-when-using-npm-as-a-website-build-system-827d29606715

# without protocol
https://unmediumed.com/medium.com/@danielireson/three-tips-when-using-npm-as-a-website-build-system-827d29606715

# without medium domain
https://unmediumed.com/@danielireson/three-tips-when-using-npm-as-a-website-build-system-827d29606715

# publication with custom domain
https://unmediumed.com/https://medium.freecodecamp.org/how-to-build-a-serverless-url-shortener-using-aws-lambda-and-s3-4fbdf70cbf5c

Building and deploying

Ensure you have SBT, the Serverless Framework and the AWS CLI installed. The required AWS infrastructure defined in serverless.yml will be automatically created on first deploy. The custom domain then needs manually configuring for the S3 bucket and API Gateway endpoint. The website is expected to be hosted from the unmediumed.com bucket at the domain root and the API hosted on the md subdomain. Optionally the www subdomain can be assigned to the www.unmediumed.com bucket to redirect www requests to the root domain.

# running the test suite
(cd api && sbt test)

# building the API using sbt assembly
./scripts/build-api

# deploying the API using serverless framework
./scripts/deploy-api

# deploying the website to S3 bucket
./scripts/deploy-website

Basic request analytics can be sent to Google Analytics. To enable, configure two environment variables for the AWS Lambda handler with the Google Analytics tracking ID and custom domain name with ANALYTICS_TRACKING_ID and ANALYTICS_TRACKING_HOST respectively.

License

This project is licensed under the MIT License.