fix(docs): Updated the project keywords and readme content for better clarity and SEO
This commit is contained in:
		| @@ -1,5 +1,11 @@ | ||||
| # Changelog | ||||
|  | ||||
| ## 2024-07-01 - 1.0.3 - fix(docs) | ||||
| Updated the project keywords and readme content for better clarity and SEO | ||||
|  | ||||
| - Improved the project description in `package.json` and `npmextra.json`. | ||||
| - Added comprehensive usage instructions and examples in `readme.md`. | ||||
|  | ||||
| ## 2024-07-01 - 1.0.2 - fix(core) | ||||
| No changes in the project files | ||||
|  | ||||
|   | ||||
| @@ -5,10 +5,20 @@ | ||||
|       "githost": "code.foss.global", | ||||
|       "gitscope": "apiclient.xyz", | ||||
|       "gitrepo": "ghost", | ||||
|       "description": "an unofficial ghost api package", | ||||
|       "description": "An unofficial Ghost CMS API package enabling content and admin functionality for managing posts.", | ||||
|       "npmPackagename": "@apiclient.xyz/ghost", | ||||
|       "license": "MIT", | ||||
|       "projectDomain": "apiclient.xyz" | ||||
|       "projectDomain": "apiclient.xyz", | ||||
|       "keywords": [ | ||||
|         "Ghost CMS", | ||||
|         "API client", | ||||
|         "content management", | ||||
|         "admin API", | ||||
|         "content API", | ||||
|         "TypeScript", | ||||
|         "post management", | ||||
|         "blog management" | ||||
|       ] | ||||
|     } | ||||
|   }, | ||||
|   "npmci": { | ||||
|   | ||||
							
								
								
									
										12
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								package.json
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|   "name": "@apiclient.xyz/ghost", | ||||
|   "version": "1.0.2", | ||||
|   "private": false, | ||||
|   "description": "an unofficial ghost api package", | ||||
|   "description": "An unofficial Ghost CMS API package enabling content and admin functionality for managing posts.", | ||||
|   "main": "dist_ts/index.js", | ||||
|   "typings": "dist_ts/index.d.ts", | ||||
|   "type": "module", | ||||
| @@ -48,5 +48,15 @@ | ||||
|     "cli.js", | ||||
|     "npmextra.json", | ||||
|     "readme.md" | ||||
|   ], | ||||
|   "keywords": [ | ||||
|     "Ghost CMS", | ||||
|     "API client", | ||||
|     "content management", | ||||
|     "admin API", | ||||
|     "content API", | ||||
|     "TypeScript", | ||||
|     "post management", | ||||
|     "blog management" | ||||
|   ] | ||||
| } | ||||
							
								
								
									
										279
									
								
								readme.md
									
									
									
									
									
								
							
							
						
						
									
										279
									
								
								readme.md
									
									
									
									
									
								
							| @@ -1,31 +1,262 @@ | ||||
| # @apiclient.xyz/ghost | ||||
| an unofficial ghost api package | ||||
| An unofficial Ghost API package | ||||
|  | ||||
| ## Availabililty and Links | ||||
| * [npmjs.org (npm package)](https://www.npmjs.com/package/@apiclient.xyz/ghost) | ||||
| * [gitlab.com (source)](https://code.foss.global/apiclient.xyz/ghost) | ||||
| * [github.com (source mirror)](https://github.com/apiclient.xyz/ghost) | ||||
| * [docs (typedoc)](https://apiclient.xyz.gitlab.io/ghost/) | ||||
| ## Install | ||||
| To install the @apiclient.xyz/ghost package, you can use npm or yarn. Make sure you're using a package manager that supports ESM and TypeScript. | ||||
|  | ||||
| ## Status for master | ||||
| NPM: | ||||
| ```bash | ||||
| npm install @apiclient.xyz/ghost | ||||
| ``` | ||||
|  | ||||
| Status Category | Status Badge | ||||
| -- | -- | ||||
| GitLab Pipelines | [](https://lossless.cloud) | ||||
| GitLab Pipline Test Coverage | [](https://lossless.cloud) | ||||
| npm | [](https://lossless.cloud) | ||||
| Snyk | [](https://lossless.cloud) | ||||
| TypeScript Support | [](https://lossless.cloud) | ||||
| node Support | [](https://nodejs.org/dist/latest-v10.x/docs/api/) | ||||
| Code Style | [](https://lossless.cloud) | ||||
| PackagePhobia (total standalone install weight) | [](https://lossless.cloud) | ||||
| PackagePhobia (package size on registry) | [](https://lossless.cloud) | ||||
| BundlePhobia (total size when bundled) | [](https://lossless.cloud) | ||||
| Yarn: | ||||
| ```bash | ||||
| yarn add @apiclient.xyz/ghost | ||||
| ``` | ||||
|  | ||||
| ## Usage | ||||
| Use TypeScript for best in class intellisense | ||||
| For further information read the linked docs at the top of this readme. | ||||
|  | ||||
| ## Legal | ||||
| > MIT licensed | **©** [Task Venture Capital GmbH](https://task.vc) | ||||
| | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy) | ||||
| Below is a detailed guide on how to use the `@apiclient.xyz/ghost` package in your TypeScript projects. We will cover everything from initialization to advanced usage scenarios. | ||||
|  | ||||
| ### Initialization | ||||
|  | ||||
| First, you need to import the necessary classes and initialize the Ghost instance with the required API keys. | ||||
|  | ||||
| ```typescript | ||||
| import { Ghost } from '@apiclient.xyz/ghost'; | ||||
|  | ||||
| // Initialize the Ghost instance | ||||
| const ghostInstance = new Ghost({ | ||||
|   baseUrl: 'https://your-ghost-url.com', | ||||
|   contentApiKey: 'your-content-api-key', | ||||
|   adminApiKey: 'your-admin-api-key' | ||||
| }); | ||||
| ``` | ||||
|  | ||||
| ### Basic Usage | ||||
|  | ||||
| #### Fetching Posts | ||||
|  | ||||
| You can fetch posts with the following method. This will give you an array of `Post` instances. | ||||
|  | ||||
| ```typescript | ||||
| // Fetch all posts | ||||
| const posts = await ghostInstance.getPosts(); | ||||
|  | ||||
| // Print titles of all posts | ||||
| posts.forEach(post => { | ||||
|   console.log(post.getTitle()); | ||||
| }); | ||||
| ``` | ||||
|  | ||||
| #### Fetching a Single Post by ID | ||||
|  | ||||
| To fetch a single post by its ID: | ||||
|  | ||||
| ```typescript | ||||
| const postId = 'your-post-id'; | ||||
| const post = await ghostInstance.getPostById(postId); | ||||
|  | ||||
| console.log(post.getTitle()); | ||||
| console.log(post.getHtml()); | ||||
| ``` | ||||
|  | ||||
| ### Post Class Methods | ||||
|  | ||||
| The `Post` class has several methods that can be useful for different scenarios. | ||||
|  | ||||
| #### Getting Post Data | ||||
|  | ||||
| These methods allow you to retrieve various parts of the post data. | ||||
|  | ||||
| ```typescript | ||||
| const postId = post.getId(); | ||||
| const postTitle = post.getTitle(); | ||||
| const postHtml = post.getHtml(); | ||||
| const postExcerpt = post.getExcerpt(); | ||||
| const postFeatureImage = post.getFeatureImage(); | ||||
|  | ||||
| console.log(`ID: ${postId}`); | ||||
| console.log(`Title: ${postTitle}`); | ||||
| console.log(`HTML: ${postHtml}`); | ||||
| console.log(`Excerpt: ${postExcerpt}`); | ||||
| console.log(`Feature Image: ${postFeatureImage}`); | ||||
| ``` | ||||
|  | ||||
| #### Updating a Post | ||||
|  | ||||
| To update a post, you can use the `update` method. Make sure you have the necessary permissions and fields. | ||||
|  | ||||
| ```typescript | ||||
| const updatedPostData = { | ||||
|   ...post.toJson(), | ||||
|   title: 'Updated Title', | ||||
|   html: '<p>Updated HTML content</p>' | ||||
| }; | ||||
|  | ||||
| await post.update(updatedPostData); | ||||
| console.log('Post updated successfully'); | ||||
| ``` | ||||
|  | ||||
| #### Deleting a Post | ||||
|  | ||||
| To delete a post: | ||||
|  | ||||
| ```typescript | ||||
| await post.delete(); | ||||
| console.log('Post deleted successfully'); | ||||
| ``` | ||||
|  | ||||
| ### Advanced Scenarios | ||||
|  | ||||
| #### Creating a New Post | ||||
|  | ||||
| You can create a new post using the `createPost` method of the `Ghost` class. | ||||
|  | ||||
| ```typescript | ||||
| const newPostData = { | ||||
|   id: 'new-post-id', | ||||
|   title: 'New Post Title', | ||||
|   html: '<p>This is the content of the new post.</p>', | ||||
|   excerpt: 'New post excerpt', | ||||
|   feature_image: 'https://your-image-url.com/image.jpg' | ||||
| }; | ||||
|  | ||||
| const newPost = await ghostInstance.createPost(newPostData); | ||||
|  | ||||
| console.log('New post created successfully'); | ||||
| console.log(`ID: ${newPost.getId()}`); | ||||
| console.log(`Title: ${newPost.getTitle()}`); | ||||
| ``` | ||||
|  | ||||
| #### Error Handling | ||||
|  | ||||
| Both the `Ghost` and `Post` classes throw errors that you can catch and handle. | ||||
|  | ||||
| ```typescript | ||||
| try { | ||||
|   const posts = await ghostInstance.getPosts(); | ||||
|   console.log('Posts fetched successfully'); | ||||
| } catch (error) { | ||||
|   console.error('Error fetching posts:', error); | ||||
| } | ||||
| ``` | ||||
|  | ||||
| Similarly, for updating or deleting a post: | ||||
|  | ||||
| ```typescript | ||||
| try { | ||||
|   await post.update({ title: 'Updated Title' }); | ||||
|   console.log('Post updated successfully'); | ||||
| } catch (error) { | ||||
|   console.error('Error updating post:', error); | ||||
| } | ||||
|  | ||||
| try { | ||||
|   await post.delete(); | ||||
|   console.log('Post deleted successfully'); | ||||
| } catch (error) { | ||||
|   console.error('Error deleting post:', error); | ||||
| } | ||||
| ``` | ||||
|  | ||||
| #### Fetching Posts with Filters and Options | ||||
|  | ||||
| The `getPosts` method can accept various filters and options. | ||||
|  | ||||
| ```typescript | ||||
| const filteredPosts = await ghostInstance.getPosts({ limit: 10, include: 'tags,authors' }); | ||||
|  | ||||
| filteredPosts.forEach(post => { | ||||
|   console.log(post.getTitle()); | ||||
| }); | ||||
| ``` | ||||
|  | ||||
| ### Example Projects | ||||
|  | ||||
| To give you a comprehensive understanding, let's look at a couple of example projects. | ||||
|  | ||||
| #### Example 1: A Basic Blog | ||||
|  | ||||
| In this scenario, we will create a simple script to fetch all posts and display their titles. | ||||
|  | ||||
| ```typescript | ||||
| import { Ghost } from '@apiclient.xyz/ghost'; | ||||
|  | ||||
| (async () => { | ||||
|   const ghostInstance = new Ghost({ | ||||
|     baseUrl: 'https://your-ghost-url.com', | ||||
|     contentApiKey: 'your-content-api-key', | ||||
|     adminApiKey: 'your-admin-api-key' | ||||
|   }); | ||||
|  | ||||
|   try { | ||||
|     const posts = await ghostInstance.getPosts(); | ||||
|     posts.forEach(post => console.log(post.getTitle())); | ||||
|   } catch (error) { | ||||
|     console.error('Error fetching posts:', error); | ||||
|   } | ||||
| })(); | ||||
| ``` | ||||
|  | ||||
| #### Example 2: Post Management Tool | ||||
|  | ||||
| In this example, let's create a tool that can fetch, create, update, and delete posts. | ||||
|  | ||||
| ```typescript | ||||
| import { Ghost, Post, IPostOptions } from '@apiclient.xyz/ghost'; | ||||
|  | ||||
| const ghostInstance = new Ghost({ | ||||
|   baseUrl: 'https://your-ghost-url.com', | ||||
|   contentApiKey: 'your-content-api-key', | ||||
|   adminApiKey: 'your-admin-api-key' | ||||
| }); | ||||
|  | ||||
| (async () => { | ||||
|   // Fetch posts | ||||
|   const posts = await ghostInstance.getPosts(); | ||||
|   console.log('Fetched posts:'); | ||||
|   posts.forEach(post => console.log(post.getTitle())); | ||||
|  | ||||
|   // Create a new post | ||||
|   const newPostData: IPostOptions = { | ||||
|     id: 'new-post-id', | ||||
|     title: 'New Post Title', | ||||
|     html: '<p>This is the content of the new post.</p>', | ||||
|   }; | ||||
|  | ||||
|   const newPost = await ghostInstance.createPost(newPostData); | ||||
|   console.log('New post created:', newPost.getTitle()); | ||||
|  | ||||
|   // Update the new post | ||||
|   const updatedPost = await newPost.update({ title: 'Updated Post Title' }); | ||||
|   console.log('Post updated:', updatedPost.getTitle()); | ||||
|  | ||||
|   // Delete the new post | ||||
|   await updatedPost.delete(); | ||||
|   console.log('Post deleted'); | ||||
| })(); | ||||
| ``` | ||||
|  | ||||
| ### Unit Tests | ||||
|  | ||||
| This package includes unit tests written using the `@push.rocks/tapbundle` and `@push.rocks/qenv` libraries. Here is how you can run them. | ||||
|  | ||||
| 1. Install the development dependencies: | ||||
|  | ||||
| ```bash | ||||
| npm install | ||||
| ``` | ||||
|  | ||||
| 2. Run the tests: | ||||
|  | ||||
| ```bash | ||||
| npm test | ||||
| ``` | ||||
|  | ||||
| ### Conclusion | ||||
|  | ||||
| The `@apiclient.xyz/ghost` package provides a comprehensive and type-safe way to interact with the Ghost CMS API using TypeScript. The features provided by the `Ghost` and `Post` classes allow for a wide range of interactions, from basic CRUD operations to advanced filtering and error handling. | ||||
|  | ||||
| For more information, please refer to the [documentation](https://apiclient.xyz.gitlab.io/ghost/). | ||||
| undefined | ||||
| @@ -3,6 +3,6 @@ | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@apiclient.xyz/ghost', | ||||
|   version: '1.0.2', | ||||
|   description: 'an unofficial ghost api package' | ||||
|   version: '1.0.3', | ||||
|   description: 'An unofficial Ghost CMS API package enabling content and admin functionality for managing posts.' | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user