npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

motionlink-cli

v0.7.2

Published

Making it easy to use Notion as a Content Management system for personal websites, portfolios, blogs, business homepages, and other kinds of static websites.

Downloads

10

Readme

Motionlink-cli

Use Notion as a Content Management System for personal websites, portfolios, blogs, business homepages, and other kinds of static websites.

Plain Markdown Support

Supported Notion Blocks

  • [x] Paragraph blocks
  • [x] Heading one blocks
  • [x] Heading two blocks
  • [x] Heading three blocks
  • [x] Callout blocks
  • [x] Quote blocks
  • [x] Bulleted list items
  • [x] Numbered list item blocks
  • [x] TODO blocks
  • [ ] Toggle blocks
  • [x] Code blocks
  • [x] Child page blocks (Adds link to page)
  • [x] Child database blocks (Adds link to database)
  • [x] Embed blocks (Adds link to resource)
  • [x] Image blocks
  • [x] Video blocks (Adds link to video)
  • [x] File blocks (Adds link to file)
  • [x] PDF blocks (Adds link to pdf)
  • [x] Bookmark blocks (Adds link to bookmark)
  • [x] Equation blocks
  • [x] Divider blocks
  • [ ] Table of contents blocks
  • [ ] Link preview blocks
  • [ ] Template blocks
  • [ ] Link to page blocks
  • [ ] Synced Block blocks
  • [ ] Table blocks
  • [ ] Table row blocks

Less likely to be supported blocks

  • Column List and Column blocks
  • Breadcrumb blocks

Install

npm install motionlink-cli --save-dev

Getting started with Motionlink

See the Getting started guide.

Available commands

Motionlink vars

Motionlink works by connecting a databas in your Notion workspace to a Github repo. This connection is called a link. One link connects one Notion database to one Github repo. Different links are allowed to point to the same Github repo. Each link has an access key that can be used to access the linked Notion database through the Notion API.

It is the access keys that this CLI tool uses to access your databases to feed content into your static website. Access keys, however, are alphanumeric strings that can be hard for a human to remember. A pair string of DB_NAME=ACCESS_KEY is referred to as a Motionlink var. A Motionlink var maps an alias name to a link access key for easy referencing from config files. Motionlink vars can be combined into one string by simply separating them with spaces: DB_NAME1=ACCESS_KEY1 DB_NAME2=ACCESS_KEY2 ....

Motionlink Vars can be generated from the Console App by creating a new Link. Selecting a link on the console should enable a "Show Args" button at the top of the page that, when clicked, shows the MotionLink vars that can be used with this CLI to access that link. You can select multiple links before clicking "Show Args" to allow the CLI access to all the databases the links connect.

An easier way of creating links, however is via the connect command (See below).

Once you have your Motionlink config file, you can use the CLI with the following commands.

Classic build

The classic build command lets you run your config file by passing your Motionlink vars string on the command line. If working with one link, this command might not be an issue, but for very long Motionlink vars strings it can be hard to read.

npx motionlink {MOTIONLINK_VARS}

Replace {MOTIONLINK_VARS} with the Motionlink vars.

Build

The build command runs your config file with the Motionlink vars found in the your .mlvars file.

npx motionlink build

Say your .mlvars file contains the text:

posts=31a49b161d214258bd3c43e83c26f64a bloggerInfo=d2cb2fab93eb49d1bcb02ab4e5f8f4ab

Then the above command is equivalent the classic build:

npx motionlink posts=31a49b161d214258bd3c43e83c26f64a bloggerInfo=d2cb2fab93eb49d1bcb02ab4e5f8f4ab

Connect

The connect command is a complement to the build command in the sense that it automatically create links for your project from your Notion dashboard and creates the .mlvars file for you. This command makes setting up links a lot easier. This command can also setup Netlify hosting for your project which means all you will need to do is push your code and start publishing from Notion.

npx motionlink connect

You will be promted for the remote URL to your Github repository as well as whether or not you want to setup Netlify hosting for your project. After collecting all the necessary information, this command will make an OAuth-like request to the Motionlink Console where you will be required to sign into Github, Notion, and optionally Netlify.

Netlify OAuth can sometimes not redirect back to the application if you were logged out. If this happens, simply follow the printent link again. It always redirects when you are logged in already.

This command expects your Notion dashboard to be setup like a Motionlink Website dashboard. That is, the root page of the dashboard has the following properties:

  1. The title of the root page should contain the git remote URL for your website
  2. And it needs to list the databases (collections) below the callout block

An example of such a dashboard can be seen here.

If you selected to deploy to Netlify, this command will push Netlify deploy secrets as well as Motionlink vars to your Github repo and also add a deploy.yml workflow file to your project. This workflow file uses the secrets to build and deploy the website upon a push or when Motionlink reports a publish event by tagging the repo.

For more complicated projects, like those that use Jekyll or Hugo, you may need to update the workflow file to install required binaries before running the build command. If you do not plan to host with Netlify, simply opt out of Netlify hosting and setup your own workflow(s).

Contributing

Feel free to contribute, drop issues and rquest features! We also have a our discussions tab enabled. Feel free to start conversations.

Author

Batandwa Mgutsi