CLI tool to publish article to https://dev.to/
MIT License
devto
is a CLI tool that helps submit articles to DEV from the terminal. It makes use of the APIs that DEV kindly provides in OpenAPI specification. devto
mainly does two things:
It collects all image links from the Markdown file into a devto.yml
file with the generate
subcommand. For example, if we have ./image-1.png
and ./image-2.png
in the Markdown file, we will get the following:
images:
./image-1.png: ""
./image-2.png: ""
It submits the article to DEV with the submit
subcommand. The submit
subcommand creates a new article in DEV and updates the devto.yml
with the resulting article_id
. devto
will use this article_id
in the following execution to perform an update operation instead of creating a new entry for the same article.
The DEV API does not have a way of uploading images yet. If we submit a Markdown content with relative paths of image links, DEV will not be able to show those images. As a workaround of this problem, we need to provide a full path for the images either manually via the devto.yml
file or using the --prefix
flag.
The Markdown file must contains at least the title property of the Jekyll front matter, like in:
---
title: An example title
description: ...
tags: ...
cover_image: ...
---
You can find more information about the usage via the --help
flag.
devto --help
brew install shihanng/devto/devto
curl -sLO https://github.com/shihanng/devto/releases/latest/download/devto_linux_amd64.deb
dpkg -i devto_linux_amd64.deb
rpm -ivh https://github.com/shihanng/devto/releases/latest/download/devto_linux_amd64.rpm
The release page contains binaries built for various platforms. Download the version matches your environment (e.g. linux_amd64
) and place the binary in the executable $PATH
e.g. /usr/local/bin
:
curl -sL https://github.com/shihanng/devto/releases/latest/download/devto_linux_amd64.tar.gz | \
tar xz -C /usr/local/bin/ devto
With Go already installed in your system, use go get
go get github.com/shihanng/devto
or clone this repo and make install
git clone https://github.com/shihanng/devto.git
cd devto
make install
Description | CLI Flag | Environment Variable | config.yml |
---|---|---|---|
DEV API key is needed to talk with DEV API. | --api-key |
DEVTO_API_KEY |
api-key |
api-key: abcd1234
Want to add missing feature? Found bug 🐛? Pull requests and issues are welcome. For major changes, please open an issue first to discuss what you would like to change ❤️.
make lint
make test
should help with the idiomatic Go styles and unit-tests.
make gen
See pkg/devto
for client documentation.