All Projects → haroldtreen → readmeio-sync

haroldtreen / readmeio-sync

Licence: other
↕️ A tool for syncing local markdown files to Readme.io

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to readmeio-sync

rdme
ReadMe's official CLI and GitHub Action
Stars: ✭ 44 (+144.44%)
Mutual labels:  readme, sync
code-sync
Collaborative cloud platform for students, teachers, and professionals.
Stars: ✭ 28 (+55.56%)
Mutual labels:  sync
dakshp07
Personal Portfolio
Stars: ✭ 14 (-22.22%)
Mutual labels:  readme
github-readme-quotes
🔥 Add Programming Quotes To Your GitHub Readme
Stars: ✭ 182 (+911.11%)
Mutual labels:  readme
biometric-attendance-sync-tool
A simple tool for syncing Biometric Attendance data with your ERPNext server
Stars: ✭ 95 (+427.78%)
Mutual labels:  sync
OneDriveBully
Bully your OneDrive to sync Symbolic Link Folders
Stars: ✭ 155 (+761.11%)
Mutual labels:  sync
jest-badges-readme
Creates a group of coverage badges from Jest into your README
Stars: ✭ 30 (+66.67%)
Mutual labels:  readme
DenverCoder1
Jonah Lawrence's Profile README
Stars: ✭ 320 (+1677.78%)
Mutual labels:  readme
synchly
Automate database backups with customizable recurring schedules.
Stars: ✭ 27 (+50%)
Mutual labels:  sync
commercetools-sync-java
Java library for importing and syncing (taking care of changes) data into one or more commercetools projects from external data files or from another commercetools project.
Stars: ✭ 26 (+44.44%)
Mutual labels:  sync
readme-generator
Generate a readme from a template and package.json data. If you need something more comprehensive, I recommend using Verb.
Stars: ✭ 18 (+0%)
Mutual labels:  readme
fitbit-googlefit
Export Fitbit data to Google Fit. Unlike the alternatives such as fitnessyncer.com, this offers very fine intraday granularity (every minute/second data).
Stars: ✭ 433 (+2305.56%)
Mutual labels:  sync
LearnCPP
Learn Cpp from Beginner to Advanced ✅ Practice 🎯 Code 💻 Repeat 🔁 One step solution for c++ beginners and cp enthusiasts.
Stars: ✭ 359 (+1894.44%)
Mutual labels:  readme
README
📄 How to write a good README
Stars: ✭ 34 (+88.89%)
Mutual labels:  readme
locize-cli
locize cli to import / export locales, add / edit / remove sync segments
Stars: ✭ 44 (+144.44%)
Mutual labels:  sync
php-task
Interface library for the PHPTask library
Stars: ✭ 23 (+27.78%)
Mutual labels:  sync
zhiiiyang
It is a self-updating personal README showing my latest tweet and reply.
Stars: ✭ 27 (+50%)
Mutual labels:  readme
react-sync
A declarative approach to fetching data via a React higher order component
Stars: ✭ 18 (+0%)
Mutual labels:  sync
tutorials as code
so that stuff read/seen don't get muddled up with time
Stars: ✭ 42 (+133.33%)
Mutual labels:  readme
DrakeAxelrod
Profile Page github repository
Stars: ✭ 30 (+66.67%)
Mutual labels:  readme

readmeio-sync

A tool for managing your Readme.io documentation locally.

NOTE This project is not officially supported by ReadMe. For support, please use the GitHub Issues for this project.

Code Climate Coverage Status npm version

Usage

1) Tool Setup:

For Regular Use:

npm install -g readmeio-sync

For Development & Testing:

git clone [email protected]:mobify/readmeio-sync.git
cd readmeio-sync
npm link
cd ../<your_readmeio_project>
npm link readmeio-sync

2) Credential Setup:

This tool logs into Readme.io for you in order to upload files. For this to work, it needs your credentials!

The README_EMAIL and README_PASSWORD environment variables need to be set for readmeio-sync to know your credentials.

export README_EMAIL=<readmeio_account_email>
export README_PASSWORD=<readmeio_account_password>

3) Config Setup:

readmeio-sync differentiates between your production/staging projects using the syncConfig.json file.

You can set the name of these projects using the config command.

readmeio-sync config -s <staging-project-slug> -p <production-project-slug>

This will generate a syncConfig.json file with the proper keys set.

4) Project Initialization:

Initialization allows you to download all your existing content from Readme.io.

It also creates a new syncPaths.json file which represents the structure of your documentation and links to all your local content directories.

readmeio-sync init

This will use the production slug that you should have configured in step 3.

5) Project Upload:

Upload allows you to push updated content to Readme.io. This might include:

  • New categories, docs or custom pages.
  • Changes in content files.
  • Changes to document titles or excerpts.
  • Changes to the way you want to order content.
  • New Slugs
  • etc.

Once your project has been initialized and has a config, you can upload using the upload command.

readmeio-sync upload [--production]

Including the production flag will push the content to production.

6) Cleaning Readme.io:

When you remove content files, it does not auto-magically delete it from your Readmeio project too. Upload only does updates and creates.

If you have out of date content on your Readmeio project, you can use the clean-remote command to remove all content that is not specified in your filesystem.

readmeio-sync clean-remote [--production]

This will look at the state of your project, compare it to the state of your documentation, and delete whatever is not specified locally. This will be done for staging unless the production flag is set.

Sometimes 'ghost' documents can appear in Readme. These are documents that have been created but are no longer shown in the list of documentation. Since you can't see them in the list of documentation, they can't be deleted.

Additionally, attempting to create a new document with the same slug as a ghost doc will cause a document with a numbered slug to be created instead (eg. getting-started -> getting-started-1).

To make sure none of your docs have slugs associated to ghost documents, an --aggressive flag can be set.

When this flag is set, readmeio-sync will clean documents that only exist in Readme AND docs that only exist locally (and perhaps haven't been uploaded due to slug naming conflicts).

readmeio-sync clean-remote [--aggressive]

Note: If you remote clean a project and it removes all the documentation, Readmeio will not allow you to go into the documentation section. You will need to upload new content with the readmeio-sync upload command to get it working again.)*

Configuration

For an in-depth explanation of how to configuration works, see CONFIGURATION.md

Known Issues

  1. Doing a remote-clean when you have no documentation in your syncPaths.json file will cause all your documentation on readme.io to be deleted (after all, you are saying "delete all the things I don't have specified locally"...which is nothing!). Having no documentation causes Readme.io to break (you can't enter the documentation section of the site). To fix this you will have to add a document to your syncPaths.json and upload it...or get in contact with Readme.io and admit you were using internal APIs (OOPS!).

  2. Custom pages are not versioned. Ideally they would be, and that's why the "customPages" section exists in each version of the syncPaths.json. When you initialize a project, the same custom pages will be downloaded for both versions and specified separately in the syncPaths.json. If you try and upload while the pages are specified in both versions, duplicates will be created.

    You can fix this by:
    1. Deleting all the custom pages in all versions except one (however if you clean-remote with this configuration, all custom pages will be deleted and you'll have to upload again).
    2. clean-remote after each upload.

  3. This tool is still in beta and may burn your project to the ground. Test it out, log issues, submit PRs.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].