Giter Club home page Giter Club logo

readme-sync's Introduction

readme.com Sync Tool

This is a CLI tool that synchronizes markdown files from a local directory (typically in a git repo) to https://readme.com.

Usage

npx readme-sync --apiKey <key> --version <version> --docs <dir>

or, to just validate the files:

npx readme-sync --apiKey <key> --version <version> --docs <dir> --validateOnly

Expected Directory Structure

Top level folders are mapped to categories. Second and third level .md files are synced as docs. Readme only supports two levels of nesting (Category > Parent Doc > Child Doc). If you want a doc with children, create a folder with the doc name, and create an index.md file inside it.

The folder and file names are turned into the slugs.

Example:

docs
├── Welcome
│   ├── 00 - Introduction.md
│   └── 10 - License.md
└── Integration
    ├── 00 - Installation.md
    ├── 10 - Setup.md
    └── Configuration
        ├── index.md
        ├── 00 - Database.md
        └── 10 - Proxy.md

Becomes

File Contents

Markdown, with front matter:

---
title: "Installation"
excerpt: "How to Install Arch Linux" # optional
hidden: true # optional
---

# Installation

...

Limitations

  • Categories cannot yet be created automatically. They must be manually created. If you don't know existing category slugs, get them with
curl --request GET   --url 'https://dash.readme.io/api/v1/categories?perPage=100&page=2'  --header 'authorization: Basic <your_readme_api_key' --header 'x-readme-version: <your_docs_version>'

Note that category slugs may differ from the category titles you see in dash.readme.io, so this API call is a good way to troubleshoot if you get the error message "can't create categories."

Syncing Behavior

  • If you have a category on readme.com that you don't have locally, the category and its contents will remain untouched on readme.com.
  • If you have a doc on readme.com that you don't have locally (but you have the category), it will be deleted from readme.com.
  • If you have a doc locally that is not on readme.com, it will be uploaded to readme.com
  • If you try to create two docs with the same name, you'll get an error about document slugs not being unique, even if the files are in separate categories.
  • The publishing order is alphanumeric. You can force ordering by prefixing your files with 01 - , 02 -, etc. Then, these ordered pages go first in the table of contents (stripped of their 01 - , 02 - ordering prefixes).

Development

  1. git clone https://github.com/flowcommerce/readme-sync
  2. nvm install
  3. npm install
  4. npx ts-node sync/index.ts --apiKey <key> --version <version> --docs <dir>

readme-sync's People

Contributors

fscelliott avatar dependabot[bot] avatar benwaffle avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.