diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3705434 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2019 Badri Sunderarajan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/README.md b/README.md new file mode 100644 index 0000000..6b60396 --- /dev/null +++ b/README.md @@ -0,0 +1,87 @@ +# carpe-medium + +fetch Medium posts and push them to Ghost + +> **Note:** This app is still work in progress! + + + +# installation + +To install, run the following commands: + + cd carpe-medium + yarn install + yarn link + +The `carpe-medium` command should now be available in your path. If not, +check permissions or run `node ./index.js` directly. + +# usage + +The main point of this tool is to easily pull Medium posts and add them +to a Ghost site, so that you can (for example) cross-post your content +between Medium and Ghost. + +This project is created for the [Snipette](https://www.snipettemag.com) +website, and as such might have some Snipette-specific features. +However, you're free to use it as you like, and any contributions are +welcome! + +## Pull a post from Medium + + # replace the URL with an actual Medium post + carpe-medium fetch https://medium.com/@username/some-post-abc123 + +This will create a new folder in `./content` containing: + +* the post as a markdown file +* image files for each post (linked appropriately) +* [upcoming] a JSON file with post metadata + +## Push a post to Ghost + + # replace some-post with post directory + carpe-medium push content/some-post + +Currently, this command does not do anything. We're working on it! + +## Copy a Medium post directly to Ghost + + # replace the URL with an actual Medium post + carpe-medium import https://medium.com/@username/some-post-abc123 + +This is basically the other two commands combined, so, like the `push` +command, doesn't do anything for the second part as of now. + +## Import a Medium user to Ghost + + # Replace username and email with appropriate values + # The username should match an existing Medium user + carpe-medium content username user@example.com + +This will output a JSON object. Copy-paste that object into a new file +(eg. `ghost-import.json`), then open your Ghost Admin and import the +file via the "Labs" section. This is required becaues Ghost doesn't +let you directly add users; it only lets you import them. + +# credits + +* Medium import/export is inspired by and depends on a modified version + of the [mediumexporter](https://github.com/xdamman/mediumexporter) + library cum cli tool +* Image upload inspired by + [ghost-webdav-storage-adapter](https://github.com/bartt/ghost-webdav-storage-adapter), + or will be, once it's implemented + +# contributing + +We're developing this software internally for +[Snipette](https://www.snipettemag.com), but, if you find our tool +useful and think you can improve it, we'd be happy to have your +contributions! Just start an issue or open a pull request :) + +# license + +This code is released under the MIT license. See the LICENSE file for +details.