From 4e611c46b168825f786e1e0c8e9843d6a75f4337 Mon Sep 17 00:00:00 2001 From: jctaoo Date: Thu, 11 Feb 2021 10:39:45 +0800 Subject: [PATCH] update readme --- README.md | 46 ++++++++++++++++++++++++++++++++++++------- static/code_diff.png | Bin 0 -> 18411 bytes 2 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 static/code_diff.png diff --git a/README.md b/README.md index 52b5014..5bf09d3 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # Stella, an easy using and beautiful blog based on [Gatsby](https://github.com/gatsbyjs/gatsby) + ![preview](./static/preview.png) ## Overview @@ -6,32 +7,40 @@ Welcome to Stella !! 🎉 Stella has three parts, Passages, Snippets, and About. + - Passages: To place all your passages. - Snippets: To place something short and simple such as code snippets. (emm... Snippets just like Twitter tweets) - About: To place your self-introduction. ## Usage -1. Install Gatsby cli: +1. Install Gatsby cli + ```shell # npm npm install -g gatsby-cli # yarn yarn global dd gatsby-cli ``` -2. Create your site: + +2. Create your site + ```shell gatsby new blog https://github.com/jctaoo/stella.git ``` -3. Place your content in `./blog/content` and modify the field named `siteMetadata` in `./blog/gatsby-config.ts`. (For all configure options check [Configure Options](./Configure%20Options.md). Also check [Gatsby Config API](https://www.gatsbyjs.com/docs/reference/config-files/gatsby-config/)) + +3. Place your content in `./blog/content` and modify the field named `siteMetadata` in `./blog/gatsby-config.ts`. (For + all configure options check [Configure Options](./Configure%20Options.md). Also + check [Gatsby Config API](https://www.gatsbyjs.com/docs/reference/config-files/gatsby-config/)) If you don't want to install Gatsby cli globally, just clone this repository to install. (first and second steps below) -## Passage Meta Data +## Passage And Snippet Metadata Stella use yaml Markdown mate data, view in [HelloWorld.md](./content/posts/HelloWorld.md) -Stella supports following meta data fields: +Stella supports following meta data fields + - category: (string optional) - tags: (string[] optional) @@ -44,17 +53,40 @@ Stella supports following meta data fields: - topImageAlt: (string optional) The alt value of topImage. -- circleImage: (string optional) The path of circle image. The circle image will show beside title. It's useful when you want to show avatar. +- circleImage: (string optional) The path of circle image. The circle image will show beside title. It's useful when you + want to show avatar. -- abbr: (string optional): The short version of the passage, Stella will display it in the thumbnail passage view, if the value is not provided, Stella will automatically intercept it. +- abbr: (string optional): The short version of the passage, Stella will display it in the thumbnail passage view, if + the value is not provided, Stella will automatically intercept it. - updateDates: (string[] optional) Format with 'YYYY-M-D', and in descending order of time. +## Snippets Writing Rules + +- Only support one Code Block, and the Code Block must be at the top of markdown (not including yml metadata). +- Markdown in Content will be ignored. + +## How to Show Diff in Code Block + +- place a '+' behind your code line indicates the line is newly added. +- place a '-' behind your code line indicates the line will be removed. + +Following code +```typescript +// adding codes ++console.log("🍔"); +// removing codes +-console.log("💩") +``` +Will look like this +![code-diff](./static/code_diff.png) + ## Debug / Test your site Unfortunately, there isn't a good way to debug with the code-less installation way now. In the first way to install, you can use the following steps: + - Run `yarn start` or `npm run start` to view your site. - If you want to modify your content, just stop the above command and restart it. (Hot reload comming soon...) diff --git a/static/code_diff.png b/static/code_diff.png new file mode 100644 index 0000000000000000000000000000000000000000..854233b3ef53a787048d6474871a5f733ee60354 GIT binary patch literal 18411 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