Skip to content

shihanng/devto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

062835c Âˇ Sep 17, 2020

History

92 Commits
Aug 30, 2020
Sep 7, 2020
Sep 11, 2020
Dec 18, 2019
Sep 5, 2020
Aug 30, 2020
Aug 30, 2020
Dec 18, 2019
Sep 12, 2020
Sep 17, 2020
Aug 26, 2020
Aug 26, 2020
Sep 5, 2020
Dec 16, 2019
Jan 12, 2020

Repository files navigation

devto -- publish to dev.to from your terminal

CI Release GitHub release (latest by date) Coverage Status Go Report Card GitHub

What is this?

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:

  1. 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: ""
  2. 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

Installation

brew install shihanng/devto/devto

Debian, Ubuntu

curl -sLO https://github.com/shihanng/devto/releases/latest/download/devto_linux_amd64.deb
dpkg -i devto_linux_amd64.deb

RedHat, CentOS

rpm -ivh https://github.com/shihanng/devto/releases/latest/download/devto_linux_amd64.rpm

Binaries

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

For Gophers

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

Configuration

Description CLI Flag Environment Variable config.yml
DEV API key is needed to talk with DEV API. --api-key DEVTO_API_KEY api-key

Sample config in YAML

api-key: abcd1234

Contributing

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.

How to generate DEV's API client

make gen

See pkg/devto for client documentation.

License

MIT