├── .github ├── ISSUE_TEMPLATE │ ├── bug.yml │ ├── cli.yml │ ├── custom.yml │ └── documentation.yml ├── pull_request_template.md └── workflows │ └── greetings.yml ├── .gitignore ├── CLI_USAGE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── astro.config.mjs ├── bun.lockb ├── package-lock.json ├── package.json ├── public ├── Screenshot.png ├── Screenshot_phone.png ├── favicon.ico ├── fonts │ ├── Satoshi-Variable.woff2 │ └── hack-regular-subset.woff2 ├── images │ ├── avatar.jpeg │ ├── clone.png │ ├── continue.png │ ├── forked.png │ ├── newpost.png │ ├── options.png │ └── username.png ├── robots.txt └── syntax-theme.json ├── src ├── components │ ├── BaseHead.astro │ ├── Blog.tsx │ ├── BlogPosts.tsx │ ├── Footer.astro │ ├── Header.astro │ ├── HeaderLink.astro │ └── Project.astro ├── config.ts ├── content │ ├── blog │ │ ├── Contributing.mdx │ │ ├── Utkarsh_ZemPost.mdx │ │ ├── check_website_accessibility.mdx │ │ ├── how_to_create_discord_bot.mdx │ │ └── zaid's_post.mdx │ └── config.ts ├── env.d.ts ├── layouts │ ├── BlogPost.astro │ └── Layout.astro ├── pages │ ├── blog.astro │ ├── blog │ │ └── [slug].astro │ ├── index.astro │ └── rss.xml.js ├── styles │ └── global.css └── util │ └── readingTime.mjs ├── tsconfig.json └── uno.config.ts /.github/ISSUE_TEMPLATE/bug.yml: -------------------------------------------------------------------------------- 1 | 2 | name: 🐞 Bug Report 3 | description: File a bug report 4 | title: '[Bug]: ' 5 | labels: ['bug'] 6 | body: 7 | - type: markdown 8 | attributes: 9 | value: | 10 | Thanks for taking the time to fill out this bug report! 11 | - type: textarea 12 | id: what-happened 13 | attributes: 14 | label: What happened? 15 | description: Also tell us, what did you expect to happen? 16 | placeholder: Add descriptions 17 | value: 'Briefly Describe the bug you found' 18 | validations: 19 | required: true 20 | - type: textarea 21 | id: screenshots 22 | attributes: 23 | label: Add screenshots 24 | description: Add screenshots to see the problems 25 | placeholder: Add screenshots 26 | value: 'Add screenshots' 27 | - type: dropdown 28 | id: browsers 29 | attributes: 30 | label: What browsers are you seeing the problem on? 31 | multiple: true 32 | options: 33 | - Firefox 34 | - Chrome 35 | - Safari 36 | - Microsoft Edge 37 | - Brave 38 | - Other 39 | - type: checkboxes 40 | id: self-grab 41 | attributes: 42 | label: Self - Grab 43 | description: By checking this box, you can fix this bug 44 | options: 45 | - label: I would like to work on this issue 46 | id: terms 47 | attributes: 48 | label: Code of Conduct 49 | description: By submitting this issue, you agree to follow our Code of Conduct 50 | options: 51 | - label: I agree to follow this project's Code of Conduct 52 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/cli.yml: -------------------------------------------------------------------------------- 1 | 2 | name: 🐞 CLI Issue 3 | description: Report an Issue with the CLI 4 | title: '[Bug]: ' 5 | labels: ['bug'] 6 | body: 7 | - type: markdown 8 | attributes: 9 | value: | 10 | Thanks for taking the time to fill out this CLI bug report! 11 | - type: textarea 12 | id: what-happened 13 | attributes: 14 | label: What happened? 15 | description: Also tell us, what did you expect to happen? 16 | placeholder: Add descriptions 17 | value: 'Briefly Describe the bug you found' 18 | validations: 19 | required: true 20 | - type: textarea 21 | id: screenshots 22 | attributes: 23 | label: Add screenshots 24 | description: Add screenshots to see the problems 25 | placeholder: Add screenshots 26 | value: 'Add screenshots' 27 | - type: dropdown 28 | id: browsers 29 | attributes: 30 | label: What terminal are you seeing the problem on? 31 | multiple: true 32 | options: 33 | - Git Bash 34 | - Powershell 35 | - Command Prompt 36 | - Windows Terminal 37 | - WSL 38 | - Other 39 | - type: checkboxes 40 | id: self-grab 41 | attributes: 42 | label: Self - Grab 43 | description: By checking this box, you can fix this bug 44 | options: 45 | - label: I would like to work on this issue 46 | id: terms 47 | attributes: 48 | label: Code of Conduct 49 | description: By submitting this issue, you agree to follow our Code of Conduct 50 | options: 51 | - label: I agree to follow this project's Code of Conduct 52 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.yml: -------------------------------------------------------------------------------- 1 | 2 | --- 3 | name: Custom issue template 4 | about: Describe this issue template's purpose here. 5 | title: '' 6 | labels: '' 7 | assignees: '' 8 | --- 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.yml: -------------------------------------------------------------------------------- 1 | name: 🔖 Documentation update 2 | description: Improve Documentation 3 | title: '[Docs]: ' 4 | labels: ['documentation'] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Thanks for taking the time to fill out this documentation update template! 10 | - type: textarea 11 | id: improve-docs 12 | attributes: 13 | label: What's wrong with the current Documentation? 14 | description: What Issue are you facing? 15 | placeholder: Add descriptions 16 | value: 'Briefly Describe the Issue you are facing' 17 | validations: 18 | required: true 19 | - type: textarea 20 | id: screenshots 21 | attributes: 22 | label: Add screenshots 23 | description: Add Screenshots if Possible 24 | placeholder: Add screenshots 25 | value: 'Add Screenshots here' 26 | - type: checkboxes 27 | id: self-grab 28 | attributes: 29 | label: Self - Grab 30 | description: By checking this box, you acknowledge that you can fix this Documentation Error 31 | options: 32 | - label: I would like to work on this issue 33 | id: terms 34 | attributes: 35 | label: Code of Conduct 36 | description: By submitting this issue, you agree to follow our Code of Conduct 37 | options: 38 | - label: I agree to follow this project's Code of Conduct -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Fixes Issue 4 | 5 | 6 | 7 | 8 | 9 | ## Changes proposed 10 | 11 | 12 | 13 | 14 | 20 | 21 | ## Check List (Check all the applicable boxes) 22 | 23 | - [ ] My Changes follow the [Code of Conduct](https://github.com/Zemerik/ZemPosts/blob/main/CODE_OF_CONDUCT.md) of this Project. 24 | - [ ] My Post or Change does not contain any **Plagarized** Content. 25 | - [ ] The title of the PR is a short description of the Changes made. 26 | 27 | ## Note to reviewers 28 | 29 | -------------------------------------------------------------------------------- /.github/workflows/greetings.yml: -------------------------------------------------------------------------------- 1 | name: 'Greetings' 2 | 3 | on: 4 | fork: 5 | push: 6 | branches: [main] 7 | issues: 8 | types: [opened] 9 | pull_request_target: 10 | types: [opened] 11 | 12 | jobs: 13 | welcome: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v1 17 | - uses: EddieHubCommunity/gh-action-community/src/welcome@main 18 | with: 19 | github-token: ${{ secrets.GITHUB_TOKEN }} 20 | issue-message: 'Welcome, @${{ github.actor }}! Thanks for raising the issue!' 21 | pr-message: 'Great job, @${{ github.actor }}! Thanks for creating the pull request!' 22 | footer: 'Soon the maintainers/owner will review it and provide you with feedback/suggestions. 👍 Rember to leave a ⭐!' -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # build output 2 | dist/ 3 | .astro 4 | 5 | # dependencies 6 | node_modules/ 7 | 8 | # logs 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | pnpm-debug.log* 13 | 14 | # editor 15 | .vscode/ 16 | 17 | # environment variables 18 | .env 19 | .env.production 20 | 21 | # macOS-specific files 22 | .DS_Store 23 | -------------------------------------------------------------------------------- /CLI_USAGE.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |
6 | 7 |
8 | 9 | 10 | 11 |

12 | 13 |

14 | ZemPosts 15 |

16 | 17 |

18 | Post & Connect with Developers 19 |

20 | 21 |

22 | 23 |

[!Note] 28 | > This CLI tool is currently in Beta. It is not fully complete and may contain bugs or issues. If you encounter any problems or need help, please open an [issue on the repository](https://github.com/Zemerik/ZemPosts). Your feedback is greatly appreciated and will help improve the tool for the final release. 29 | 30 | ## ⚡ Installation 31 | 32 | 1. Install the CLI via `NPM`: 33 | 34 | ```sh 35 | npm i zemposts 36 | ``` 37 | 38 | 2. Run the CLI via `NPX`: 39 | 40 | ```sh 41 | npx zemposts 42 | ``` 43 | 44 | 3. Enter your GitHub username when prompted. 45 | 46 | ![Username](public/images/username.png) 47 | 48 | ## 💻 Commands: 49 | 50 | You will be prompted a number of commands. Use your **Arrow Keys** to navigate between each option, and the **Enter** key to select a specific option. Below is an overview of each command: 51 | 52 |
53 | 54 | 55 | 1. Clone Repository: 56 | 57 | 58 | - Command: `👨‍💻 Clone` 59 | - Description: This command allows users to clone either the original ZemPosts repository from GitHub or their forked version. This is useful for users who want to explore and understand ZemPosts. 60 | 61 |
62 | 63 |
64 | 65 | 66 | 2. Create a New Post: 67 | 68 | 69 | - Command: `📘 New Post` 70 | - Description: Users can create a new blog post either via a local web interface (localhost) or directly in the terminal. This flexibility allows users to choose their preferred method for content creation. 71 | 72 |
73 | 74 |
75 | 76 | 77 | 3. Run Locally: 78 | 79 | 80 | - Command: `⚡Locally Running` 81 | - Description: This command provides instructions for running the project locally. It checks if the repository is already cloned and, if not, guides the user through the cloning process and sets up the local environment. 82 | 83 |
84 | 85 |
86 | 87 | 88 | 4. About: 89 | 90 | 91 | - Command: `💁‍♂️ About` 92 | - Description: Displays a brief overview of ZemPosts, including its purpose and key features. This helps users understand what ZemPosts is and what they can do with it. 93 | 94 |
95 | 96 |
97 | 98 | 99 | 5. Key Features: 100 | 101 | 102 | - Command: `✨ Key Features` 103 | - Description: Lists the key features of ZemPosts, highlighting what makes the platform unique and useful for users. 104 | 105 |
106 | 107 |
108 | 109 | 110 | 6. Links: 111 | 112 | 113 | - Command: `🌐 Links` 114 | - Description: Provides important links related to ZemPosts, including the GitHub repository, official website, and community support links. 115 | 116 |
117 | 118 |
119 | 120 | 121 | 7. Exit: 122 | 123 | 124 | - Command: `🔴 Exit` 125 | - Description: Exits the CLI tool. Users can choose this option when they are done using the CLI. 126 | 127 |
128 | 129 | ## 🤝 Cloning: 130 | 131 | > [!Caution] 132 | > [Git](https://git-scm.com/) needs to be installed on your device! 133 | 134 | You can easily clone either the original ZemPosts Repository or your forked version through our CLI. 135 | 136 | 1. Select the `👨‍💻 Clone` option and press `Enter`: 137 | 138 | ![Clone Option](public/images/clone.png) 139 | 140 | 2. You will now be prompted to clone either the original repository or your forked version. Use your **Arrow Keys** to choose, and press **Enter** to select: 141 | 142 | > [!Tip] 143 | > To clone your forked version, you need to first fork a copy of this repository on your github account. Click [here](https://github.com/Zemerik/ZemPosts/fork) to do so. 144 | 145 | ![Forked/Original](public/images/forked.png) 146 | 147 | 3. A repository will automatically be cloned. 148 | 149 | - If you cloned the original repository, the destination will be `ZemPosts - Zemerik` 150 | - if you cloned your forked version, the destination will be `ZemPosts - [Your Github Username]` 151 | 152 | ## ➕ Adding your Post: 153 | 154 | > [!Caution] 155 | > You must have cloned your forked version of this repository. Refer to `Cloning` section for assistance. 156 | 157 | 1. Use your arrow keys to select the `📘 New Post` option: 158 | 159 | ![New Post](public/images/newpost.png) 160 | 161 | 2. You will then be prompted to either continue in the terminal or open a webpage on localhost. Use your **Arrow Keys** to choose and press **Enter** to select 162 | 163 | - You will be asked to enter different information such as your Post Title, and Publication Date. Fill out all the required information as this will be showed on the website! 164 | 165 | ![Options](public/images/options.png) 166 | 167 | 3. After you have entered all the required information and submitted, a file would automatically created in the `ZemPosts - [Your Github Username]/src/content/blog` directory with the same title as your post title. 168 | 169 | - If necessary, make any changes. 170 | 171 | 4. After you are happy with your post (remember to check for spelling and grammar mistakes), use `git` to commit and push: 172 | 173 | ```sh 174 | cd ZemPosts - [Your Github Username] 175 | 176 | git add . 177 | 178 | git commit -m "New Post: ..." 179 | 180 | git push -u origin main 181 | ``` 182 | 183 | 5. Open a [Pull-Request](https://github.com/Zemerik/ZemPosts/pulls) on this repository! 184 | 185 | > Your PR will be **merged**/**reviewed** as soon as possible! 186 | 187 | ## 🤖 Other Commands: 188 | 189 | - The remaining commands are straightforward and should be easy to use without additional instructions. If you need help with any specific command, please feel free to open an [issue](https://github.com/Zemerik/ZemPosts/issues) for detailed instructions. 190 | 191 | ## 💁 Support: 192 | 193 | For any kind of support or inforrmation, you are free to join our **Discord Server**, 194 | 195 | 196 | 197 | 198 | 199 |

200 | Thanks for Visiting🙏 201 |

202 | 203 |

204 | Don't forget to leave a ⭐ 205 |
206 | Made with 💖 by Hemang Yadav (Zemerik) 207 |

208 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | zemerikY@gmail.com. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |
6 | 7 |
8 | 9 | 10 | 11 |

12 | 13 |

14 | ZemPosts 15 |

16 | 17 |

18 | Post & Connect with Developers 19 |

20 | 21 |

22 | 23 |

24 | 25 | - Read our Official Docs on [ZemDocs](https://zemdocs.vercel.app/en/zemposts/introduction) 26 | 27 | 28 | ## 🏃‍♂️ Locally Running: 29 | 30 | - This project can be locally executed on your machine in 4 simple steps! 31 | 32 | > [!Tip] 33 | > [NodeJS](https://nodejs.org/) needs to be installed on your machine. 34 | 35 | 36 | 1. Make a `Copy` of this Repository on your machine by using the following `git command` in your terminal: 37 | 38 | ``` 39 | git clone https://github.com/Zemerik/Posts 40 | ``` 41 | 42 | 2. `Navigate` into the Project's `directory` by entering the following `command` in your terminal: 43 | 44 | ``` 45 | cd ZemPosts 46 | ``` 47 | 48 | 3. `Install` the required `Dependencies` by using `NPM`: 49 | 50 | ```nodejs 51 | npm i 52 | ``` 53 | 54 | 4. Start the `Development Server` through the following `command`: 55 | 56 | ```nodejs 57 | npm run astro dev 58 | ``` 59 | 60 | 61 | ## ➕ Adding your Post: 62 | 63 | > [!Note] 64 | > You can add your Post either manually, or use the CLI. See the [`CLI_USAGE`](https://github.com/Zemerik/ZemPosts/blob/main/CLI_USAGE.md) file for specific instructions. 65 | 66 | 1. Fork a copy of this Repository on your Github account by clicking below, 67 | 68 | - [Fork](https://github.com/Zemerik/ZemPosts/fork) 69 | 70 | 2. Head over to your **Forked** Repository, and locate the `src/content/blog` directory. Create a new file, and name it `[Post Title].mdx` 71 | 72 | > [!Note] 73 | > Remember to replace `[Post Title]` with your actual Post Title. 74 | 75 | 3. Add the following code snippet in the file, 76 | 77 | ```md 78 | --- 79 | layout: ../../layouts/BlogPost.astro 80 | title: POST TILE HERE 81 | description: POST DESCRIPTION HERE 82 | pubDate: Month/Day/Year 83 | --- 84 | ``` 85 | 86 | >[!Note] 87 | > Keep the `POST TITLE` and `POST DESCRIPTION` short and concise! 88 | 89 | 4. Write your Post Content after the Code Snippet which you just copied using `Markdown` or `HTML`. 90 | 91 | 5. Save the file in which you have wrote your post content, and open a pull-request on this repository. Your PR will be **merged**/**reviewed** as soon as possible! 92 | 93 | ## 🐞Bug/Issue/Feedback/Feature Request: 94 | 95 | - If you would like to report a bug, a issue, implement any feedack, or request any feature, you are free to do so by opening a issue on this repository. Remember to give a detailed explanation of what you are trying to say, and how it will help the website. 96 | 97 | ## 💁 Support: 98 | 99 | For any kind of support or inforrmation, you are free to join our **Discord Server**, 100 | 101 | 102 | 103 | 104 | 105 |

106 | Thanks for Visiting🙏 107 |

108 | 109 |

110 | Don't forget to leave a ⭐ 111 |
112 | Made with 💖 by Hemang Yadav (Zemerik) 113 |

114 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Hemang Yadav 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |
6 | 7 |
8 | 9 | 10 | 11 |

12 | 13 |

14 | ZemPosts 15 |

16 | 17 |

18 | Post & Connect with Developers 19 |

20 | 21 |

22 | 23 |

24 | 25 | ## ❗ About: 26 | 27 | ZemPosts stands as an open-source platform, providing users with the opportunity to write and read blogs seamlessly. This connectivity is fostered through the simple act of publishing one's blog to the platform, thus creating a digital hub where like-minded individuals can engage, collaborate, and share insights within the expansive realm of writing and blogging. With its user-friendly interface and inclusive community ethos, ZemPosts serves as a dynamic space where connections are forged, ideas are exchanged, and creativity thrives. 28 | 29 | - Read our Official Docs on [ZemDocs](https://zemdocs.vercel.app/en/zemposts/introduction) 30 | 31 | ## 🤖 CLI: 32 | 33 | ZemPosts has an official CLI that simplifies cloning, contributing, and displaying information. It makes contributing to the repository easier and can display all the information from the README. For more information, refer to the [CLI_USAGE.md](https://github.com/Zemerik/ZemPosts/blob/main/CLI_USAGE.md) file. 34 | 35 | - [Package Link](https://www.npmjs.com/package/zemposts) 36 | 37 | ## 🎥 Youtube Video: 38 | 39 | - Feel free to watch our Youtube Video by clicking below 👇 40 | 41 |
42 | 43 | [![Introducing: ZemPosts](https://ytcards.demolab.com/?id=1HVd3NTt3f8&title=Introducing%3A+ZemPosts&lang=en×tamp=1723352391&background_color=%230d1117&title_color=%23ffffff&stats_color=%23dedede&max_title_lines=1&width=250&border_radius=5&duration=411 "Introducing: ZemPosts")](https://www.youtube.com/watch?v=1HVd3NTt3f8) 44 | 45 |
46 | 47 | ## ⭐ Features: 48 | 49 | 50 | 51 | 72 | 76 | 77 | 78 | 83 | 88 | 89 |
52 |
53 |

54 | 📱 Responsive UI Design supported on all devices 55 |

56 |
57 |
58 |

59 | 📃 Write Blogs using Markdown 60 |

61 |
62 |
63 |

64 | 💖 Read other People's Blogs 65 |

66 |
67 |
68 |

69 | 🏆 Open Source 70 |

71 |
73 | 74 | 75 |
79 |

80 | ▶️ Want to Add More Features? 81 |

82 |
84 |

85 | Open an Issue and let us know! ◀ 86 |

87 |
90 | 91 | ## 🏃‍♂️ Locally Running: 92 | 93 | - This project can be locally executed on your machine in 4 simple steps! 94 | 95 | > [!Tip] 96 | > [NodeJS](https://nodejs.org/) needs to be installed on your machine. 97 | 98 | 99 | 1. Make a `Copy` of this Repository on your machine by using the following `git command` in your terminal: 100 | 101 | ``` 102 | git clone https://github.com/Zemerik/ZemPosts 103 | ``` 104 | 105 | 2. `Navigate` into the Project's `directory` by entering the following `command` in your terminal: 106 | 107 | ``` 108 | cd ZemPosts 109 | ``` 110 | 111 | 3. `Install` the required `Dependencies` by using `NPM`: 112 | 113 | ```nodejs 114 | npm i 115 | ``` 116 | 117 | 4. Start the `Development Server` through the following `command`: 118 | 119 | ```nodejs 120 | npm run astro dev 121 | ``` 122 | 123 | ## 🚀 Project Structure 124 | 125 | ```text 126 | ├── public/ 127 | │   ├── fonts/ 128 | │   └── images/ 129 | ├── src/ 130 | │   ├── components/ 131 | │   ├── content/ 132 | │   ├── layouts/ 133 | │   └── pages/ 134 | │   └── styles/ 135 | │   └── util/ 136 | ├── astro.config.mjs 137 | ├── README.md 138 | ├── CODE_OF_CONDUCT.md 139 | ├── CONTRIBUTING.md 140 | ├── SECURITY.md 141 | ├── Licence 142 | ├── package.json 143 | ├── package-lock.json 144 | ├── bun.lockb 145 | ├── unoconfig.ts 146 | └── tsconfig.json 147 | ``` 148 | 149 | ## 🤝 Contributing: 150 | 151 | Contributions are always welcome and appreciated! **Kindly visit the [CONTRIBUTING.md](https://github.com/Zemerik/ZemPosts/blob/main/CONTRIBUTING.md) file for more information** 152 | 153 | - > Don't Forget to Checkout [ZemProfiles](https://github.com/Zemerik/ZemProfiles) & [ZemShowcase](https://github.com/Zemerik/ZemShowcase) 154 | 155 | ## 💁 Support: 156 | 157 | For any kind of support or inforrmation, you are free to join our **Discord Server**, 158 | 159 | 160 | 161 | 162 | 163 | ## 🥳 Contributors: 164 | 165 | Thanks to all Contributors! 166 | 167 | ![Contributors](https://contrib.rocks/image?repo=Zemerik/ZemPosts) 168 | 169 |

170 | Thanks for Visiting🙏 171 |

172 | 173 |

174 | Don't forget to leave a ⭐ 175 |
176 | Made with 💖 by Hemang Yadav (Zemerik) 177 |

178 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | > To Report a Vulnerability, kindly email at [zemerikY@gmail.com](mailto:zemeriky@gmail.com) 6 | -------------------------------------------------------------------------------- /astro.config.mjs: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "astro/config"; 2 | import mdx from "@astrojs/mdx"; 3 | import sitemap from "@astrojs/sitemap"; 4 | import prefetch from "@astrojs/prefetch"; 5 | import unocss from "unocss/astro"; 6 | import react from "@astrojs/react"; 7 | import rehypeAutolinkHeadings from "rehype-autolink-headings"; 8 | import { remarkReadingTime } from "./src/util/readingTime.mjs"; 9 | import theme from './public/syntax-theme.json'; 10 | 11 | export default defineConfig({ 12 | site: "https://zemposts.vercel.app", 13 | markdown: { 14 | extendDefaultPlugins: true, 15 | rehypePlugins: [rehypeAutolinkHeadings], 16 | remarkPlugins: [remarkReadingTime], 17 | shikiConfig: { theme } 18 | }, 19 | integrations: [unocss({ injectReset: true }), mdx(), sitemap(), prefetch(), react()] 20 | }); 21 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/bun.lockb -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@example/basics", 3 | "type": "module", 4 | "version": "0.0.1", 5 | "private": true, 6 | "scripts": { 7 | "dev": "astro dev", 8 | "start": "astro dev", 9 | "build": "astro build", 10 | "preview": "astro preview", 11 | "astro": "astro" 12 | }, 13 | "dependencies": { 14 | "@astrojs/mdx": "^3.0.1", 15 | "@astrojs/prefetch": "^0.4.1", 16 | "@astrojs/react": "^3.4.0", 17 | "@astrojs/rss": "^4.0.6", 18 | "@astrojs/sitemap": "^3.1.5", 19 | "@example/basics": "file:", 20 | "@types/react": "^18.3.3", 21 | "@types/react-dom": "^18.3.0", 22 | "astro": "^4.16.18", 23 | "astro-og-canvas": "^0.5.0", 24 | "flamethrower-router": "^0.0.0-meme.12", 25 | "fuse.js": "^7.0.0", 26 | "mdast-util-to-string": "^4.0.0", 27 | "react": "^18.3.1", 28 | "react-dom": "^18.3.1", 29 | "reading-time": "^1.5.0", 30 | "rehype-autolink-headings": "^7.1.0" 31 | }, 32 | "devDependencies": { 33 | "@unocss/reset": "^0.60.3", 34 | "unocss": "^0.60.3", 35 | "unocss-preset-scrollbar": "^0.3.1" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /public/Screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/Screenshot.png -------------------------------------------------------------------------------- /public/Screenshot_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/Screenshot_phone.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/favicon.ico -------------------------------------------------------------------------------- /public/fonts/Satoshi-Variable.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/fonts/Satoshi-Variable.woff2 -------------------------------------------------------------------------------- /public/fonts/hack-regular-subset.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/fonts/hack-regular-subset.woff2 -------------------------------------------------------------------------------- /public/images/avatar.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/images/avatar.jpeg -------------------------------------------------------------------------------- /public/images/clone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/images/clone.png -------------------------------------------------------------------------------- /public/images/continue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/images/continue.png -------------------------------------------------------------------------------- /public/images/forked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/images/forked.png -------------------------------------------------------------------------------- /public/images/newpost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/images/newpost.png -------------------------------------------------------------------------------- /public/images/options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/images/options.png -------------------------------------------------------------------------------- /public/images/username.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zemerik/ZemPosts/e6bf640d948fc69c2ab9853cc6a69760309a1a45/public/images/username.png -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | 4 | Sitemap: https://www.zemposts.vercel.app/sitemap-index.xml 5 | -------------------------------------------------------------------------------- /public/syntax-theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Catppuccin Mocha", 3 | "type": "dark", 4 | "colors": { 5 | "focusBorder": "#cba6f7", 6 | "foreground": "#cdd6f4", 7 | "disabledForeground": "#a6adc8", 8 | "widget.shadow": "#18182580", 9 | "selection.background": "#585b7066", 10 | "descriptionForeground": "#cdd6f4", 11 | "errorForeground": "#f38ba8", 12 | "icon.foreground": "#cba6f7", 13 | "sash.hoverBorder": "#cba6f7", 14 | "window.activeBorder": "#00000000", 15 | "window.inactiveBorder": "#00000000", 16 | "textBlockQuote.background": "#181825", 17 | "textBlockQuote.border": "#11111b", 18 | "textCodeBlock.background": "#121212", 19 | "textLink.activeForeground": "#89dceb", 20 | "textLink.foreground": "#89b4fa", 21 | "textPreformat.foreground": "#cdd6f4", 22 | "textSeparator.foreground": "#cba6f7", 23 | "activityBar.background": "#11111b", 24 | "activityBar.foreground": "#cba6f7", 25 | "activityBar.dropBorder": "#cba6f733", 26 | "activityBar.inactiveForeground": "#6c7086", 27 | "activityBar.border": "#00000000", 28 | "activityBarBadge.background": "#cba6f7", 29 | "activityBarBadge.foreground": "#11111b", 30 | "activityBar.activeBorder": "#00000000", 31 | "activityBar.activeBackground": "#00000000", 32 | "activityBar.activeFocusBorder": "#00000000", 33 | "badge.background": "#45475a", 34 | "badge.foreground": "#cdd6f4", 35 | "breadcrumb.activeSelectionForeground": "#cba6f7", 36 | "breadcrumb.background": "#121212", 37 | "breadcrumb.focusForeground": "#cba6f7", 38 | "breadcrumb.foreground": "#cdd6f4cc", 39 | "breadcrumbPicker.background": "#181825", 40 | "button.background": "#cba6f7", 41 | "button.foreground": "#11111b", 42 | "button.border": "#00000000", 43 | "button.separator": "#00000000", 44 | "button.hoverBackground": "#dec7fa", 45 | "button.secondaryForeground": "#cdd6f4", 46 | "button.secondaryBackground": "#585b70", 47 | "button.secondaryHoverBackground": "#686b84", 48 | "checkbox.background": "#45475a", 49 | "checkbox.border": "#00000000", 50 | "checkbox.foreground": "#cba6f7", 51 | "dropdown.background": "#181825", 52 | "dropdown.listBackground": "#585b70", 53 | "dropdown.border": "#cba6f7", 54 | "dropdown.foreground": "#cdd6f4", 55 | "debugToolBar.background": "#11111b", 56 | "debugToolBar.border": "#00000000", 57 | "debugExceptionWidget.background": "#11111b", 58 | "debugExceptionWidget.border": "#cba6f7", 59 | "debugTokenExpression.number": "#fab387", 60 | "debugTokenExpression.boolean": "#cba6f7", 61 | "debugTokenExpression.string": "#a6e3a1", 62 | "debugTokenExpression.error": "#f38ba8", 63 | "debugIcon.breakpointForeground": "#f38ba8", 64 | "debugIcon.breakpointDisabledForeground": "#f38ba899", 65 | "debugIcon.breakpointUnverifiedForeground": "#121212", 66 | "debugIcon.breakpointCurrentStackframeForeground": "#585b70", 67 | "debugIcon.breakpointStackframeForeground": "#585b70", 68 | "debugIcon.startForeground": "#a6e3a1", 69 | "debugIcon.pauseForeground": "#89b4fa", 70 | "debugIcon.stopForeground": "#f38ba8", 71 | "debugIcon.disconnectForeground": "#585b70", 72 | "debugIcon.restartForeground": "#94e2d5", 73 | "debugIcon.stepOverForeground": "#cba6f7", 74 | "debugIcon.stepIntoForeground": "#cdd6f4", 75 | "debugIcon.stepOutForeground": "#cdd6f4", 76 | "debugIcon.continueForeground": "#a6e3a1", 77 | "debugIcon.stepBackForeground": "#585b70", 78 | "debugConsole.infoForeground": "#89b4fa", 79 | "debugConsole.warningForeground": "#fab387", 80 | "debugConsole.errorForeground": "#f38ba8", 81 | "debugConsole.sourceForeground": "#f5e0dc", 82 | "debugConsoleInputIcon.foreground": "#cdd6f4", 83 | "diffEditor.border": "#585b70", 84 | "diffEditor.insertedTextBackground": "#a6e3a11a", 85 | "diffEditor.removedTextBackground": "#f38ba81a", 86 | "diffEditor.insertedLineBackground": "#a6e3a126", 87 | "diffEditor.removedLineBackground": "#f38ba826", 88 | "diffEditor.diagonalFill": "#585b7099", 89 | "diffEditorOverview.insertedForeground": "#a6e3a1cc", 90 | "diffEditorOverview.removedForeground": "#f38ba8cc", 91 | "editor.background": "#121212", 92 | "editor.findMatchBackground": "#f38ba84d", 93 | "editor.findMatchBorder": "#00000000", 94 | "editor.findMatchHighlightBackground": "#89dceb4d", 95 | "editor.findMatchHighlightBorder": "#00000000", 96 | "editor.findRangeHighlightBackground": "#89dceb4d", 97 | "editor.findRangeHighlightBorder": "#00000000", 98 | "editor.foldBackground": "#89dceb40", 99 | "editor.foreground": "#cdd6f4", 100 | "editor.hoverHighlightBackground": "#89dceb40", 101 | "editor.inactiveSelectionBackground": "#585b7040", 102 | "editor.lineHighlightBackground": "#cdd6f412", 103 | "editor.lineHighlightBorder": "#00000000", 104 | "editor.rangeHighlightBackground": "#89dceb40", 105 | "editor.rangeHighlightBorder": "#00000000", 106 | "editor.selectionBackground": "#585b7066", 107 | "editor.selectionHighlightBackground": "#9399b266", 108 | "editor.selectionHighlightBorder": "#89dceb33", 109 | "editor.wordHighlightBackground": "#585b70b3", 110 | "editor.wordHighlightStrongBackground": "#585b7080", 111 | "editorBracketMatch.background": "#9399b21a", 112 | "editorBracketMatch.border": "#9399b2", 113 | "editorCodeLens.foreground": "#7f849c", 114 | "editorCursor.background": "#121212", 115 | "editorCursor.foreground": "#f5e0dc", 116 | "editorGroup.border": "#585b70", 117 | "editorGroup.dropBackground": "#cba6f733", 118 | "editorGroup.emptyBackground": "#121212", 119 | "editorGroupHeader.tabsBackground": "#11111b", 120 | "editorGutter.addedBackground": "#a6e3a1", 121 | "editorGutter.background": "#121212", 122 | "editorGutter.commentRangeForeground": "#9399b2", 123 | "editorGutter.deletedBackground": "#f38ba8", 124 | "editorGutter.foldingControlForeground": "#9399b2", 125 | "editorGutter.modifiedBackground": "#f9e2af", 126 | "editorHoverWidget.background": "#181825", 127 | "editorHoverWidget.border": "#585b70", 128 | "editorHoverWidget.foreground": "#cdd6f4", 129 | "editorIndentGuide.activeBackground": "#585b70", 130 | "editorIndentGuide.background": "#45475a", 131 | "editorInlayHint.foreground": "#585b70", 132 | "editorInlayHint.background": "#181825bf", 133 | "editorInlayHint.typeForeground": "#bac2de", 134 | "editorInlayHint.typeBackground": "#181825bf", 135 | "editorInlayHint.parameterForeground": "#a6adc8", 136 | "editorInlayHint.parameterBackground": "#181825bf", 137 | "editorLineNumber.activeForeground": "#cba6f7", 138 | "editorLineNumber.foreground": "#7f849c", 139 | "editorLink.activeForeground": "#cba6f7", 140 | "editorMarkerNavigation.background": "#181825", 141 | "editorMarkerNavigationError.background": "#f38ba8", 142 | "editorMarkerNavigationInfo.background": "#89b4fa", 143 | "editorMarkerNavigationWarning.background": "#fab387", 144 | "editorOverviewRuler.background": "#181825", 145 | "editorOverviewRuler.border": "#cdd6f412", 146 | "editorOverviewRuler.modifiedForeground": "#f9e2af", 147 | "editorRuler.foreground": "#585b70", 148 | "editor.stackFrameHighlightBackground": "#f9e2af26", 149 | "editor.focusedStackFrameHighlightBackground": "#a6e3a126", 150 | "editorStickyScrollHover.background": "#313244", 151 | "editorSuggestWidget.background": "#181825", 152 | "editorSuggestWidget.border": "#585b70", 153 | "editorSuggestWidget.foreground": "#cdd6f4", 154 | "editorSuggestWidget.highlightForeground": "#cba6f7", 155 | "editorSuggestWidget.selectedBackground": "#313244", 156 | "editorWhitespace.foreground": "#9399b266", 157 | "editorWidget.background": "#181825", 158 | "editorWidget.foreground": "#cdd6f4", 159 | "editorWidget.resizeBorder": "#585b70", 160 | "editorLightBulb.foreground": "#f9e2af", 161 | "editorError.foreground": "#f38ba8", 162 | "editorError.border": "#00000000", 163 | "editorError.background": "#00000000", 164 | "editorWarning.foreground": "#fab387", 165 | "editorWarning.border": "#00000000", 166 | "editorWarning.background": "#00000000", 167 | "editorInfo.foreground": "#89b4fa", 168 | "editorInfo.border": "#00000000", 169 | "editorInfo.background": "#00000000", 170 | "problemsErrorIcon.foreground": "#f38ba8", 171 | "problemsInfoIcon.foreground": "#89b4fa", 172 | "problemsWarningIcon.foreground": "#fab387", 173 | "extensionButton.prominentForeground": "#11111b", 174 | "extensionButton.prominentBackground": "#cba6f7", 175 | "extensionButton.separator": "#121212", 176 | "extensionButton.prominentHoverBackground": "#dec7fa", 177 | "extensionBadge.remoteBackground": "#89b4fa", 178 | "extensionBadge.remoteForeground": "#11111b", 179 | "extensionIcon.starForeground": "#f9e2af", 180 | "extensionIcon.verifiedForeground": "#a6e3a1", 181 | "extensionIcon.preReleaseForeground": "#585b70", 182 | "extensionIcon.sponsorForeground": "#f5c2e7", 183 | "gitDecoration.addedResourceForeground": "#a6e3a1", 184 | "gitDecoration.conflictingResourceForeground": "#cba6f7", 185 | "gitDecoration.deletedResourceForeground": "#f38ba8", 186 | "gitDecoration.ignoredResourceForeground": "#6c7086", 187 | "gitDecoration.modifiedResourceForeground": "#f9e2af", 188 | "gitDecoration.stageDeletedResourceForeground": "#f38ba8", 189 | "gitDecoration.stageModifiedResourceForeground": "#f9e2af", 190 | "gitDecoration.submoduleResourceForeground": "#89b4fa", 191 | "gitDecoration.untrackedResourceForeground": "#a6e3a1", 192 | "input.background": "#313244", 193 | "input.border": "#00000000", 194 | "input.foreground": "#cdd6f4", 195 | "input.placeholderForeground": "#cdd6f473", 196 | "inputOption.activeBackground": "#585b70", 197 | "inputOption.activeBorder": "#cba6f7", 198 | "inputOption.activeForeground": "#cdd6f4", 199 | "inputValidation.errorBackground": "#f38ba8", 200 | "inputValidation.errorBorder": "#11111b33", 201 | "inputValidation.errorForeground": "#11111b", 202 | "inputValidation.infoBackground": "#89b4fa", 203 | "inputValidation.infoBorder": "#11111b33", 204 | "inputValidation.infoForeground": "#11111b", 205 | "inputValidation.warningBackground": "#fab387", 206 | "inputValidation.warningBorder": "#11111b33", 207 | "inputValidation.warningForeground": "#11111b", 208 | "list.activeSelectionBackground": "#313244", 209 | "list.activeSelectionForeground": "#cdd6f4", 210 | "list.dropBackground": "#cba6f733", 211 | "list.focusBackground": "#313244", 212 | "list.focusForeground": "#cdd6f4", 213 | "list.focusOutline": "#00000000", 214 | "list.highlightForeground": "#cba6f7", 215 | "list.hoverBackground": "#31324480", 216 | "list.hoverForeground": "#cdd6f4", 217 | "list.inactiveSelectionBackground": "#313244", 218 | "list.inactiveSelectionForeground": "#cdd6f4", 219 | "list.warningForeground": "#fab387", 220 | "listFilterWidget.background": "#45475a", 221 | "listFilterWidget.noMatchesOutline": "#f38ba8", 222 | "listFilterWidget.outline": "#00000000", 223 | "tree.indentGuidesStroke": "#9399b2", 224 | "tree.inactiveIndentGuidesStroke": "#45475a", 225 | "menu.background": "#121212", 226 | "menu.border": "#12121280", 227 | "menu.foreground": "#cdd6f4", 228 | "menu.selectionBackground": "#585b70", 229 | "menu.selectionBorder": "#00000000", 230 | "menu.selectionForeground": "#cdd6f4", 231 | "menu.separatorBackground": "#585b70", 232 | "menubar.selectionBackground": "#45475a", 233 | "menubar.selectionForeground": "#cdd6f4", 234 | "merge.commonContentBackground": "#45475a", 235 | "merge.commonHeaderBackground": "#585b70", 236 | "merge.currentContentBackground": "#a6e3a133", 237 | "merge.currentHeaderBackground": "#a6e3a166", 238 | "merge.incomingContentBackground": "#89b4fa33", 239 | "merge.incomingHeaderBackground": "#89b4fa66", 240 | "minimap.background": "#18182580", 241 | "minimap.findMatchHighlight": "#89dceb4d", 242 | "minimap.selectionHighlight": "#585b70bf", 243 | "minimap.selectionOccurrenceHighlight": "#585b70bf", 244 | "minimap.warningHighlight": "#fab387bf", 245 | "minimap.errorHighlight": "#f38ba8bf", 246 | "minimapSlider.background": "#cba6f733", 247 | "minimapSlider.hoverBackground": "#cba6f766", 248 | "minimapSlider.activeBackground": "#cba6f799", 249 | "minimapGutter.addedBackground": "#a6e3a1bf", 250 | "minimapGutter.deletedBackground": "#f38ba8bf", 251 | "minimapGutter.modifiedBackground": "#f9e2afbf", 252 | "notificationCenter.border": "#cba6f7", 253 | "notificationCenterHeader.foreground": "#cdd6f4", 254 | "notificationCenterHeader.background": "#181825", 255 | "notificationToast.border": "#cba6f7", 256 | "notifications.foreground": "#cdd6f4", 257 | "notifications.background": "#181825", 258 | "notifications.border": "#cba6f7", 259 | "notificationLink.foreground": "#89b4fa", 260 | "notificationsErrorIcon.foreground": "#f38ba8", 261 | "notificationsWarningIcon.foreground": "#fab387", 262 | "notificationsInfoIcon.foreground": "#89b4fa", 263 | "panel.background": "#121212", 264 | "panel.border": "#585b70", 265 | "panelSection.border": "#585b70", 266 | "panelSection.dropBackground": "#cba6f733", 267 | "panelTitle.activeBorder": "#cba6f7", 268 | "panelTitle.activeForeground": "#cdd6f4", 269 | "panelTitle.inactiveForeground": "#a6adc8", 270 | "peekView.border": "#cba6f7", 271 | "peekViewEditor.background": "#181825", 272 | "peekViewEditorGutter.background": "#181825", 273 | "peekViewEditor.matchHighlightBackground": "#89dceb4d", 274 | "peekViewEditor.matchHighlightBorder": "#00000000", 275 | "peekViewResult.background": "#181825", 276 | "peekViewResult.fileForeground": "#cdd6f4", 277 | "peekViewResult.lineForeground": "#cdd6f4", 278 | "peekViewResult.matchHighlightBackground": "#89dceb4d", 279 | "peekViewResult.selectionBackground": "#313244", 280 | "peekViewResult.selectionForeground": "#cdd6f4", 281 | "peekViewTitle.background": "#121212", 282 | "peekViewTitleDescription.foreground": "#bac2deb3", 283 | "peekViewTitleLabel.foreground": "#cdd6f4", 284 | "pickerGroup.border": "#cba6f7", 285 | "pickerGroup.foreground": "#cba6f7", 286 | "progressBar.background": "#cba6f7", 287 | "scrollbar.shadow": "#11111b", 288 | "scrollbarSlider.activeBackground": "#31324466", 289 | "scrollbarSlider.background": "#585b7080", 290 | "scrollbarSlider.hoverBackground": "#6c7086", 291 | "settings.focusedRowBackground": "#585b7033", 292 | "settings.headerForeground": "#cdd6f4", 293 | "settings.modifiedItemIndicator": "#cba6f7", 294 | "settings.dropdownBackground": "#45475a", 295 | "settings.dropdownListBorder": "#00000000", 296 | "settings.textInputBackground": "#45475a", 297 | "settings.textInputBorder": "#00000000", 298 | "settings.numberInputBackground": "#45475a", 299 | "settings.numberInputBorder": "#00000000", 300 | "sideBar.background": "#181825", 301 | "sideBar.dropBackground": "#cba6f733", 302 | "sideBar.foreground": "#cdd6f4", 303 | "sideBar.border": "#00000000", 304 | "sideBarSectionHeader.background": "#181825", 305 | "sideBarSectionHeader.foreground": "#cdd6f4", 306 | "sideBarTitle.foreground": "#cba6f7", 307 | "banner.background": "#45475a", 308 | "banner.foreground": "#cdd6f4", 309 | "banner.iconForeground": "#cdd6f4", 310 | "statusBar.background": "#11111b", 311 | "statusBar.foreground": "#cdd6f4", 312 | "statusBar.border": "#00000000", 313 | "statusBar.noFolderBackground": "#11111b", 314 | "statusBar.noFolderForeground": "#cdd6f4", 315 | "statusBar.noFolderBorder": "#00000000", 316 | "statusBar.debuggingBackground": "#fab387", 317 | "statusBar.debuggingForeground": "#11111b", 318 | "statusBar.debuggingBorder": "#00000000", 319 | "statusBarItem.remoteBackground": "#89b4fa", 320 | "statusBarItem.remoteForeground": "#11111b", 321 | "statusBarItem.activeBackground": "#585b7066", 322 | "statusBarItem.hoverBackground": "#585b7033", 323 | "statusBarItem.prominentForeground": "#cba6f7", 324 | "statusBarItem.prominentBackground": "#00000000", 325 | "statusBarItem.prominentHoverBackground": "#585b7033", 326 | "statusBarItem.errorForeground": "#f38ba8", 327 | "statusBarItem.errorBackground": "#00000000", 328 | "statusBarItem.warningForeground": "#fab387", 329 | "statusBarItem.warningBackground": "#00000000", 330 | "commandCenter.foreground": "#bac2de", 331 | "commandCenter.activeForeground": "#cba6f7", 332 | "commandCenter.background": "#11111b", 333 | "commandCenter.activeBackground": "#585b7033", 334 | "commandCenter.border": "#cba6f7", 335 | "tab.activeBackground": "#121212", 336 | "tab.activeBorder": "#00000000", 337 | "tab.activeBorderTop": "#cba6f7", 338 | "tab.activeForeground": "#cba6f7", 339 | "tab.activeModifiedBorder": "#f9e2af", 340 | "tab.border": "#181825", 341 | "tab.hoverBackground": "#28283d", 342 | "tab.hoverBorder": "#00000000", 343 | "tab.hoverForeground": "#cba6f7", 344 | "tab.inactiveBackground": "#181825", 345 | "tab.inactiveForeground": "#6c7086", 346 | "tab.inactiveModifiedBorder": "#f9e2af4d", 347 | "tab.lastPinnedBorder": "#cba6f7", 348 | "tab.unfocusedActiveBackground": "#181825", 349 | "tab.unfocusedActiveBorder": "#00000000", 350 | "tab.unfocusedActiveBorderTop": "#cba6f74d", 351 | "tab.unfocusedInactiveBackground": "#0e0e16", 352 | "terminal.foreground": "#cdd6f4", 353 | "terminal.ansiBlack": "#a6adc8", 354 | "terminal.ansiRed": "#f38ba8", 355 | "terminal.ansiGreen": "#a6e3a1", 356 | "terminal.ansiYellow": "#f9e2af", 357 | "terminal.ansiBlue": "#89b4fa", 358 | "terminal.ansiMagenta": "#f5c2e7", 359 | "terminal.ansiCyan": "#89dceb", 360 | "terminal.ansiWhite": "#bac2de", 361 | "terminal.ansiBrightBlack": "#585b70", 362 | "terminal.ansiBrightRed": "#f38ba8", 363 | "terminal.ansiBrightGreen": "#a6e3a1", 364 | "terminal.ansiBrightYellow": "#f9e2af", 365 | "terminal.ansiBrightBlue": "#89b4fa", 366 | "terminal.ansiBrightMagenta": "#f5c2e7", 367 | "terminal.ansiBrightCyan": "#89dceb", 368 | "terminal.ansiBrightWhite": "#45475a", 369 | "terminal.selectionBackground": "#585b70", 370 | "terminal.inactiveSelectionBackground": "#585b7080", 371 | "terminalCursor.background": "#121212", 372 | "terminalCursor.foreground": "#f5e0dc", 373 | "terminal.border": "#585b70", 374 | "terminal.dropBackground": "#cba6f733", 375 | "terminal.tab.activeBorder": "#cba6f7", 376 | "terminalCommandDecoration.defaultBackground": "#585b70", 377 | "terminalCommandDecoration.successBackground": "#a6e3a1", 378 | "terminalCommandDecoration.errorBackground": "#f38ba8", 379 | "titleBar.activeBackground": "#11111b", 380 | "titleBar.activeForeground": "#cdd6f4", 381 | "titleBar.inactiveBackground": "#11111b", 382 | "titleBar.inactiveForeground": "#cdd6f480", 383 | "titleBar.border": "#00000000", 384 | "welcomePage.tileBackground": "#181825", 385 | "welcomePage.progress.background": "#11111b", 386 | "welcomePage.progress.foreground": "#cba6f7", 387 | "walkThrough.embeddedEditorBackground": "#1212124d", 388 | "symbolIcon.textForeground": "#cdd6f4", 389 | "symbolIcon.arrayForeground": "#fab387", 390 | "symbolIcon.booleanForeground": "#cba6f7", 391 | "symbolIcon.classForeground": "#f9e2af", 392 | "symbolIcon.colorForeground": "#f5c2e7", 393 | "symbolIcon.constantForeground": "#fab387", 394 | "symbolIcon.constructorForeground": "#b4befe", 395 | "symbolIcon.enumeratorForeground": "#f9e2af", 396 | "symbolIcon.enumeratorMemberForeground": "#f9e2af", 397 | "symbolIcon.eventForeground": "#f5c2e7", 398 | "symbolIcon.fieldForeground": "#cdd6f4", 399 | "symbolIcon.fileForeground": "#cba6f7", 400 | "symbolIcon.folderForeground": "#cba6f7", 401 | "symbolIcon.functionForeground": "#89b4fa", 402 | "symbolIcon.interfaceForeground": "#f9e2af", 403 | "symbolIcon.keyForeground": "#94e2d5", 404 | "symbolIcon.keywordForeground": "#cba6f7", 405 | "symbolIcon.methodForeground": "#89b4fa", 406 | "symbolIcon.moduleForeground": "#cdd6f4", 407 | "symbolIcon.namespaceForeground": "#f9e2af", 408 | "symbolIcon.nullForeground": "#eba0ac", 409 | "symbolIcon.numberForeground": "#fab387", 410 | "symbolIcon.objectForeground": "#f9e2af", 411 | "symbolIcon.operatorForeground": "#94e2d5", 412 | "symbolIcon.packageForeground": "#f2cdcd", 413 | "symbolIcon.propertyForeground": "#eba0ac", 414 | "symbolIcon.referenceForeground": "#f9e2af", 415 | "symbolIcon.snippetForeground": "#f2cdcd", 416 | "symbolIcon.stringForeground": "#a6e3a1", 417 | "symbolIcon.structForeground": "#94e2d5", 418 | "symbolIcon.typeParameterForeground": "#eba0ac", 419 | "symbolIcon.unitForeground": "#cdd6f4", 420 | "symbolIcon.variableForeground": "#cdd6f4", 421 | "charts.foreground": "#cdd6f4", 422 | "charts.lines": "#bac2de", 423 | "charts.red": "#f38ba8", 424 | "charts.blue": "#89b4fa", 425 | "charts.yellow": "#f9e2af", 426 | "charts.orange": "#fab387", 427 | "charts.green": "#a6e3a1", 428 | "charts.purple": "#cba6f7", 429 | "errorLens.errorBackground": "#f38ba826", 430 | "errorLens.errorBackgroundLight": "#f38ba826", 431 | "errorLens.errorForeground": "#f38ba8", 432 | "errorLens.errorForegroundLight": "#f38ba8", 433 | "errorLens.errorMessageBackground": "#f38ba826", 434 | "errorLens.hintBackground": "#a6e3a126", 435 | "errorLens.hintBackgroundLight": "#a6e3a126", 436 | "errorLens.hintForeground": "#a6e3a1", 437 | "errorLens.hintForegroundLight": "#a6e3a1", 438 | "errorLens.hintMessageBackground": "#a6e3a126", 439 | "errorLens.infoBackground": "#89b4fa26", 440 | "errorLens.infoBackgroundLight": "#89b4fa26", 441 | "errorLens.infoForeground": "#89b4fa", 442 | "errorLens.infoForegroundLight": "#89b4fa", 443 | "errorLens.infoMessageBackground": "#89b4fa26", 444 | "errorLens.statusBarErrorForeground": "#f38ba8", 445 | "errorLens.statusBarHintForeground": "#a6e3a1", 446 | "errorLens.statusBarIconErrorForeground": "#f38ba8", 447 | "errorLens.statusBarIconWarningForeground": "#fab387", 448 | "errorLens.statusBarInfoForeground": "#89b4fa", 449 | "errorLens.statusBarWarningForeground": "#fab387", 450 | "errorLens.warningBackground": "#fab38726", 451 | "errorLens.warningBackgroundLight": "#fab38726", 452 | "errorLens.warningForeground": "#fab387", 453 | "errorLens.warningForegroundLight": "#fab387", 454 | "errorLens.warningMessageBackground": "#fab38726", 455 | "issues.closed": "#cba6f7", 456 | "issues.newIssueDecoration": "#f5e0dc", 457 | "issues.open": "#a6e3a1", 458 | "pullRequests.closed": "#f38ba8", 459 | "pullRequests.draft": "#9399b2", 460 | "pullRequests.merged": "#cba6f7", 461 | "pullRequests.notification": "#cdd6f4", 462 | "pullRequests.open": "#a6e3a1", 463 | "gitlens.gutterBackgroundColor": "#3132444d", 464 | "gitlens.gutterForegroundColor": "#cdd6f4", 465 | "gitlens.gutterUncommittedForegroundColor": "#cba6f7", 466 | "gitlens.trailingLineBackgroundColor": "#00000000", 467 | "gitlens.trailingLineForegroundColor": "#cdd6f44d", 468 | "gitlens.lineHighlightBackgroundColor": "#cba6f726", 469 | "gitlens.lineHighlightOverviewRulerColor": "#cba6f7cc", 470 | "gitlens.openAutolinkedIssueIconColor": "#a6e3a1", 471 | "gitlens.closedAutolinkedIssueIconColor": "#cba6f7", 472 | "gitlens.closedPullRequestIconColor": "#f38ba8", 473 | "gitlens.openPullRequestIconColor": "#a6e3a1", 474 | "gitlens.mergedPullRequestIconColor": "#cba6f7", 475 | "gitlens.unpublishedChangesIconColor": "#a6e3a1", 476 | "gitlens.unpublishedCommitIconColor": "#a6e3a1", 477 | "gitlens.unpulledChangesIconColor": "#fab387", 478 | "gitlens.decorations.branchAheadForegroundColor": "#a6e3a1", 479 | "gitlens.decorations.branchBehindForegroundColor": "#fab387", 480 | "gitlens.decorations.branchDivergedForegroundColor": "#f9e2af", 481 | "gitlens.decorations.branchUnpublishedForegroundColor": "#a6e3a1", 482 | "gitlens.decorations.branchMissingUpstreamForegroundColor": "#fab387", 483 | "gitlens.decorations.statusMergingOrRebasingConflictForegroundColor": "#eba0ac", 484 | "gitlens.decorations.statusMergingOrRebasingForegroundColor": "#f9e2af", 485 | "gitlens.decorations.workspaceRepoMissingForegroundColor": "#a6adc8", 486 | "gitlens.decorations.workspaceCurrentForegroundColor": "#cba6f7", 487 | "gitlens.decorations.workspaceRepoOpenForegroundColor": "#cba6f7", 488 | "gitlens.decorations.worktreeHasUncommittedChangesForegroundColor": "#fab387", 489 | "gitlens.decorations.worktreeMissingForegroundColor": "#eba0ac", 490 | "gitlens.graphLane1Color": "#cba6f7", 491 | "gitlens.graphLane2Color": "#f9e2af", 492 | "gitlens.graphLane3Color": "#89b4fa", 493 | "gitlens.graphLane4Color": "#f2cdcd", 494 | "gitlens.graphLane5Color": "#a6e3a1", 495 | "gitlens.graphLane6Color": "#b4befe", 496 | "gitlens.graphLane7Color": "#f5e0dc", 497 | "gitlens.graphLane8Color": "#f38ba8", 498 | "gitlens.graphLane9Color": "#94e2d5", 499 | "gitlens.graphLane10Color": "#f5c2e7", 500 | "gitlens.graphChangesColumnAddedColor": "#a6e3a1", 501 | "gitlens.graphChangesColumnDeletedColor": "#f38ba8", 502 | "gitlens.graphMinimapMarkerHeadColor": "#a6e3a1", 503 | "gitlens.graphScrollMarkerHeadColor": "#a6e3a1", 504 | "gitlens.graphMinimapMarkerUpstreamColor": "#93dd8d", 505 | "gitlens.graphScrollMarkerUpstreamColor": "#93dd8d", 506 | "gitlens.graphMinimapMarkerHighlightsColor": "#f9e2af", 507 | "gitlens.graphScrollMarkerHighlightsColor": "#f9e2af", 508 | "gitlens.graphMinimapMarkerLocalBranchesColor": "#89b4fa", 509 | "gitlens.graphScrollMarkerLocalBranchesColor": "#89b4fa", 510 | "gitlens.graphMinimapMarkerRemoteBranchesColor": "#71a4f9", 511 | "gitlens.graphScrollMarkerRemoteBranchesColor": "#71a4f9", 512 | "gitlens.graphMinimapMarkerStashesColor": "#cba6f7", 513 | "gitlens.graphScrollMarkerStashesColor": "#cba6f7", 514 | "gitlens.graphMinimapMarkerTagsColor": "#f2cdcd", 515 | "gitlens.graphScrollMarkerTagsColor": "#f2cdcd", 516 | "editorBracketHighlight.foreground1": "#f38ba8", 517 | "editorBracketHighlight.foreground2": "#fab387", 518 | "editorBracketHighlight.foreground3": "#f9e2af", 519 | "editorBracketHighlight.foreground4": "#a6e3a1", 520 | "editorBracketHighlight.foreground5": "#74c7ec", 521 | "editorBracketHighlight.foreground6": "#cba6f7", 522 | "editorBracketHighlight.unexpectedBracket.foreground": "#eba0ac", 523 | "button.secondaryBorder": "#cba6f7", 524 | "table.headerBackground": "#313244", 525 | "table.headerForeground": "#cdd6f4", 526 | "list.focusAndSelectionBackground": "#45475a" 527 | }, 528 | "semanticHighlighting": true, 529 | "semanticTokenColors": { 530 | "enumMember": { 531 | "foreground": "#94e2d5" 532 | }, 533 | "selfKeyword": { 534 | "foreground": "#f38ba8" 535 | }, 536 | "boolean": { 537 | "foreground": "#fab387" 538 | }, 539 | "number": { 540 | "foreground": "#fab387" 541 | }, 542 | "variable.defaultLibrary": { 543 | "foreground": "#eba0ac" 544 | }, 545 | "class:python": { 546 | "foreground": "#f9e2af" 547 | }, 548 | "class.builtin:python": { 549 | "foreground": "#cba6f7" 550 | }, 551 | "variable.typeHint:python": { 552 | "foreground": "#f9e2af" 553 | }, 554 | "function.decorator:python": { 555 | "foreground": "#fab387" 556 | }, 557 | "variable.readonly:javascript": { 558 | "foreground": "#cdd6f4" 559 | }, 560 | "variable.readonly:typescript": { 561 | "foreground": "#cdd6f4" 562 | }, 563 | "property.readonly:javascript": { 564 | "foreground": "#cdd6f4" 565 | }, 566 | "property.readonly:typescript": { 567 | "foreground": "#cdd6f4" 568 | }, 569 | "variable.readonly:javascriptreact": { 570 | "foreground": "#cdd6f4" 571 | }, 572 | "variable.readonly:typescriptreact": { 573 | "foreground": "#cdd6f4" 574 | }, 575 | "property.readonly:javascriptreact": { 576 | "foreground": "#cdd6f4" 577 | }, 578 | "property.readonly:typescriptreact": { 579 | "foreground": "#cdd6f4" 580 | }, 581 | "variable.readonly:scala": { 582 | "foreground": "#cdd6f4" 583 | }, 584 | "type.defaultLibrary:go": { 585 | "foreground": "#cba6f7" 586 | }, 587 | "variable.readonly.defaultLibrary:go": { 588 | "foreground": "#cba6f7" 589 | }, 590 | "tomlArrayKey": { 591 | "foreground": "#89b4fa", 592 | "fontStyle": "" 593 | }, 594 | "tomlTableKey": { 595 | "foreground": "#89b4fa", 596 | "fontStyle": "" 597 | }, 598 | "builtinAttribute.attribute.library:rust": { 599 | "foreground": "#89b4fa" 600 | }, 601 | "generic.attribute:rust": { 602 | "foreground": "#cdd6f4" 603 | }, 604 | "constant.builtin.readonly:nix": { 605 | "foreground": "#cba6f7" 606 | }, 607 | "heading": { 608 | "foreground": "#f38ba8" 609 | }, 610 | "text.emph": { 611 | "foreground": "#f38ba8", 612 | "fontStyle": "italic" 613 | }, 614 | "text.strong": { 615 | "foreground": "#f38ba8", 616 | "fontStyle": "bold" 617 | }, 618 | "text.math": { 619 | "foreground": "#f2cdcd" 620 | }, 621 | "pol": { 622 | "foreground": "#f2cdcd" 623 | } 624 | }, 625 | "tokenColors": [ 626 | { 627 | "name": "Basic text & variable names (incl. leading punctuation)", 628 | "scope": [ 629 | "text", 630 | "source", 631 | "variable.other.readwrite", 632 | "punctuation.definition.variable" 633 | ], 634 | "settings": { 635 | "foreground": "#cdd6f4" 636 | } 637 | }, 638 | { 639 | "name": "Parentheses, Brackets, Braces", 640 | "scope": "punctuation", 641 | "settings": { 642 | "foreground": "#9399b2", 643 | "fontStyle": "" 644 | } 645 | }, 646 | { 647 | "name": "Comments", 648 | "scope": [ 649 | "comment", 650 | "punctuation.definition.comment" 651 | ], 652 | "settings": { 653 | "foreground": "#6c7086", 654 | "fontStyle": "italic" 655 | } 656 | }, 657 | { 658 | "scope": [ 659 | "string", 660 | "punctuation.definition.string" 661 | ], 662 | "settings": { 663 | "foreground": "#a6e3a1" 664 | } 665 | }, 666 | { 667 | "scope": "string.regexp", 668 | "settings": { 669 | "foreground": "#f5c2e7" 670 | } 671 | }, 672 | { 673 | "scope": "constant.character.escape", 674 | "settings": { 675 | "foreground": "#f5c2e7" 676 | } 677 | }, 678 | { 679 | "name": "Booleans, constants, numbers", 680 | "scope": [ 681 | "constant.numeric", 682 | "variable.other.constant", 683 | "entity.name.constant", 684 | "constant.language.boolean", 685 | "constant.language.false", 686 | "constant.language.true", 687 | "keyword.other.unit.user-defined", 688 | "keyword.other.unit.suffix.floating-point" 689 | ], 690 | "settings": { 691 | "foreground": "#fab387" 692 | } 693 | }, 694 | { 695 | "scope": [ 696 | "keyword", 697 | "keyword.operator.word", 698 | "keyword.operator.new", 699 | "variable.language.super", 700 | "support.type.primitive", 701 | "storage.type", 702 | "storage.modifier", 703 | "punctuation.definition.keyword" 704 | ], 705 | "settings": { 706 | "foreground": "#cba6f7", 707 | "fontStyle": "" 708 | } 709 | }, 710 | { 711 | "scope": "entity.name.tag.documentation", 712 | "settings": { 713 | "foreground": "#cba6f7" 714 | } 715 | }, 716 | { 717 | "name": "Punctuation", 718 | "scope": [ 719 | "keyword.operator", 720 | "punctuation.accessor", 721 | "punctuation.definition.generic", 722 | "meta.function.closure punctuation.section.parameters", 723 | "punctuation.definition.tag", 724 | "punctuation.separator.key-value" 725 | ], 726 | "settings": { 727 | "foreground": "#94e2d5" 728 | } 729 | }, 730 | { 731 | "scope": [ 732 | "entity.name.function", 733 | "meta.function-call.method", 734 | "support.function", 735 | "support.function.misc", 736 | "variable.function" 737 | ], 738 | "settings": { 739 | "foreground": "#89b4fa", 740 | "fontStyle": "italic" 741 | } 742 | }, 743 | { 744 | "name": "Classes", 745 | "scope": [ 746 | "entity.name.class", 747 | "entity.other.inherited-class", 748 | "support.class", 749 | "meta.function-call.constructor", 750 | "entity.name.struct" 751 | ], 752 | "settings": { 753 | "foreground": "#f9e2af", 754 | "fontStyle": "italic" 755 | } 756 | }, 757 | { 758 | "name": "Enum", 759 | "scope": "entity.name.enum", 760 | "settings": { 761 | "foreground": "#f9e2af", 762 | "fontStyle": "italic" 763 | } 764 | }, 765 | { 766 | "name": "Enum member", 767 | "scope": [ 768 | "meta.enum variable.other.readwrite", 769 | "variable.other.enummember" 770 | ], 771 | "settings": { 772 | "foreground": "#94e2d5" 773 | } 774 | }, 775 | { 776 | "name": "Object properties", 777 | "scope": "meta.property.object", 778 | "settings": { 779 | "foreground": "#94e2d5" 780 | } 781 | }, 782 | { 783 | "name": "Types", 784 | "scope": [ 785 | "meta.type", 786 | "meta.type-alias", 787 | "support.type", 788 | "entity.name.type" 789 | ], 790 | "settings": { 791 | "foreground": "#f9e2af", 792 | "fontStyle": "italic" 793 | } 794 | }, 795 | { 796 | "name": "Decorators", 797 | "scope": [ 798 | "meta.annotation variable.function", 799 | "meta.annotation variable.annotation.function", 800 | "meta.annotation punctuation.definition.annotation", 801 | "meta.decorator", 802 | "punctuation.decorator" 803 | ], 804 | "settings": { 805 | "foreground": "#fab387" 806 | } 807 | }, 808 | { 809 | "scope": [ 810 | "variable.parameter", 811 | "meta.function.parameters" 812 | ], 813 | "settings": { 814 | "foreground": "#eba0ac", 815 | "fontStyle": "italic" 816 | } 817 | }, 818 | { 819 | "name": "Built-ins", 820 | "scope": [ 821 | "constant.language", 822 | "support.function.builtin" 823 | ], 824 | "settings": { 825 | "foreground": "#f38ba8" 826 | } 827 | }, 828 | { 829 | "scope": "entity.other.attribute-name.documentation", 830 | "settings": { 831 | "foreground": "#f38ba8" 832 | } 833 | }, 834 | { 835 | "name": "Preprocessor directives", 836 | "scope": [ 837 | "keyword.control.directive", 838 | "punctuation.definition.directive" 839 | ], 840 | "settings": { 841 | "foreground": "#f9e2af" 842 | } 843 | }, 844 | { 845 | "name": "Type parameters", 846 | "scope": "punctuation.definition.typeparameters", 847 | "settings": { 848 | "foreground": "#89dceb" 849 | } 850 | }, 851 | { 852 | "name": "Namespaces", 853 | "scope": "entity.name.namespace", 854 | "settings": { 855 | "foreground": "#f9e2af" 856 | } 857 | }, 858 | { 859 | "name": "Property names (left hand assignments in json/yaml/css)", 860 | "scope": "support.type.property-name.css", 861 | "settings": { 862 | "foreground": "#89b4fa", 863 | "fontStyle": "" 864 | } 865 | }, 866 | { 867 | "name": "This/Self keyword", 868 | "scope": [ 869 | "variable.language.this", 870 | "variable.language.this punctuation.definition.variable" 871 | ], 872 | "settings": { 873 | "foreground": "#f38ba8" 874 | } 875 | }, 876 | { 877 | "name": "Object properties", 878 | "scope": "variable.object.property", 879 | "settings": { 880 | "foreground": "#cdd6f4" 881 | } 882 | }, 883 | { 884 | "name": "String template interpolation", 885 | "scope": [ 886 | "string.template variable", 887 | "string variable" 888 | ], 889 | "settings": { 890 | "foreground": "#cdd6f4" 891 | } 892 | }, 893 | { 894 | "name": "`new` as bold", 895 | "scope": "keyword.operator.new", 896 | "settings": { 897 | "fontStyle": "bold" 898 | } 899 | }, 900 | { 901 | "name": "C++ extern keyword", 902 | "scope": "storage.modifier.specifier.extern.cpp", 903 | "settings": { 904 | "foreground": "#cba6f7" 905 | } 906 | }, 907 | { 908 | "name": "C++ scope resolution", 909 | "scope": [ 910 | "entity.name.scope-resolution.template.call.cpp", 911 | "entity.name.scope-resolution.parameter.cpp", 912 | "entity.name.scope-resolution.cpp", 913 | "entity.name.scope-resolution.function.definition.cpp" 914 | ], 915 | "settings": { 916 | "foreground": "#f9e2af" 917 | } 918 | }, 919 | { 920 | "name": "C++ doc keywords", 921 | "scope": "storage.type.class.doxygen", 922 | "settings": { 923 | "fontStyle": "" 924 | } 925 | }, 926 | { 927 | "name": "C++ operators", 928 | "scope": [ 929 | "storage.modifier.reference.cpp" 930 | ], 931 | "settings": { 932 | "foreground": "#94e2d5" 933 | } 934 | }, 935 | { 936 | "name": "C# Interpolated Strings", 937 | "scope": "meta.interpolation.cs", 938 | "settings": { 939 | "foreground": "#cdd6f4" 940 | } 941 | }, 942 | { 943 | "name": "C# xml-style docs", 944 | "scope": "comment.block.documentation.cs", 945 | "settings": { 946 | "foreground": "#cdd6f4" 947 | } 948 | }, 949 | { 950 | "name": "Classes, reflecting the className color in JSX", 951 | "scope": [ 952 | "source.css entity.other.attribute-name.class.css", 953 | "entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css" 954 | ], 955 | "settings": { 956 | "foreground": "#f9e2af" 957 | } 958 | }, 959 | { 960 | "name": "Operators", 961 | "scope": "punctuation.separator.operator.css", 962 | "settings": { 963 | "foreground": "#94e2d5" 964 | } 965 | }, 966 | { 967 | "name": "Pseudo classes", 968 | "scope": "source.css entity.other.attribute-name.pseudo-class", 969 | "settings": { 970 | "foreground": "#94e2d5" 971 | } 972 | }, 973 | { 974 | "scope": "source.css constant.other.unicode-range", 975 | "settings": { 976 | "foreground": "#fab387" 977 | } 978 | }, 979 | { 980 | "scope": "source.css variable.parameter.url", 981 | "settings": { 982 | "foreground": "#a6e3a1", 983 | "fontStyle": "" 984 | } 985 | }, 986 | { 987 | "name": "CSS vendored property names", 988 | "scope": [ 989 | "support.type.vendored.property-name" 990 | ], 991 | "settings": { 992 | "foreground": "#89dceb" 993 | } 994 | }, 995 | { 996 | "name": "Less/SCSS right-hand variables (@/$-prefixed)", 997 | "scope": [ 998 | "source.css meta.property-value variable", 999 | "source.css meta.property-value variable.other.less", 1000 | "source.css meta.property-value variable.other.less punctuation.definition.variable.less", 1001 | "meta.definition.variable.scss" 1002 | ], 1003 | "settings": { 1004 | "foreground": "#eba0ac" 1005 | } 1006 | }, 1007 | { 1008 | "name": "CSS variables (--prefixed)", 1009 | "scope": [ 1010 | "source.css meta.property-list variable", 1011 | "meta.property-list variable.other.less", 1012 | "meta.property-list variable.other.less punctuation.definition.variable.less" 1013 | ], 1014 | "settings": { 1015 | "foreground": "#89b4fa" 1016 | } 1017 | }, 1018 | { 1019 | "name": "CSS Percentage values, styled the same as numbers", 1020 | "scope": "keyword.other.unit.percentage.css", 1021 | "settings": { 1022 | "foreground": "#fab387" 1023 | } 1024 | }, 1025 | { 1026 | "name": "CSS Attribute selectors, styled the same as strings", 1027 | "scope": "source.css meta.attribute-selector", 1028 | "settings": { 1029 | "foreground": "#a6e3a1" 1030 | } 1031 | }, 1032 | { 1033 | "name": "JSON/YAML keys, other left-hand assignments", 1034 | "scope": [ 1035 | "keyword.other.definition.ini", 1036 | "punctuation.support.type.property-name.json", 1037 | "support.type.property-name.json", 1038 | "punctuation.support.type.property-name.toml", 1039 | "support.type.property-name.toml", 1040 | "entity.name.tag.yaml", 1041 | "punctuation.support.type.property-name.yaml", 1042 | "support.type.property-name.yaml" 1043 | ], 1044 | "settings": { 1045 | "foreground": "#89b4fa", 1046 | "fontStyle": "" 1047 | } 1048 | }, 1049 | { 1050 | "name": "JSON/YAML constants", 1051 | "scope": [ 1052 | "constant.language.json", 1053 | "constant.language.yaml" 1054 | ], 1055 | "settings": { 1056 | "foreground": "#fab387" 1057 | } 1058 | }, 1059 | { 1060 | "name": "YAML anchors", 1061 | "scope": [ 1062 | "entity.name.type.anchor.yaml", 1063 | "variable.other.alias.yaml" 1064 | ], 1065 | "settings": { 1066 | "foreground": "#f9e2af", 1067 | "fontStyle": "" 1068 | } 1069 | }, 1070 | { 1071 | "name": "TOML tables / ini groups", 1072 | "scope": [ 1073 | "support.type.property-name.table", 1074 | "entity.name.section.group-title.ini" 1075 | ], 1076 | "settings": { 1077 | "foreground": "#f9e2af" 1078 | } 1079 | }, 1080 | { 1081 | "name": "TOML dates", 1082 | "scope": "constant.other.time.datetime.offset.toml", 1083 | "settings": { 1084 | "foreground": "#f5c2e7" 1085 | } 1086 | }, 1087 | { 1088 | "name": "YAML anchor puctuation", 1089 | "scope": [ 1090 | "punctuation.definition.anchor.yaml", 1091 | "punctuation.definition.alias.yaml" 1092 | ], 1093 | "settings": { 1094 | "foreground": "#f5c2e7" 1095 | } 1096 | }, 1097 | { 1098 | "name": "YAML triple dashes", 1099 | "scope": "entity.other.document.begin.yaml", 1100 | "settings": { 1101 | "foreground": "#f5c2e7" 1102 | } 1103 | }, 1104 | { 1105 | "name": "Markup Diff", 1106 | "scope": "markup.changed.diff", 1107 | "settings": { 1108 | "foreground": "#fab387" 1109 | } 1110 | }, 1111 | { 1112 | "name": "Diff", 1113 | "scope": [ 1114 | "meta.diff.header.from-file", 1115 | "meta.diff.header.to-file", 1116 | "punctuation.definition.from-file.diff", 1117 | "punctuation.definition.to-file.diff" 1118 | ], 1119 | "settings": { 1120 | "foreground": "#89b4fa" 1121 | } 1122 | }, 1123 | { 1124 | "name": "Diff Inserted", 1125 | "scope": "markup.inserted.diff", 1126 | "settings": { 1127 | "foreground": "#a6e3a1" 1128 | } 1129 | }, 1130 | { 1131 | "name": "Diff Deleted", 1132 | "scope": "markup.deleted.diff", 1133 | "settings": { 1134 | "foreground": "#f38ba8" 1135 | } 1136 | }, 1137 | { 1138 | "name": "dotenv left-hand side assignments", 1139 | "scope": [ 1140 | "variable.other.env" 1141 | ], 1142 | "settings": { 1143 | "foreground": "#89b4fa" 1144 | } 1145 | }, 1146 | { 1147 | "name": "dotenv reference to existing env variable", 1148 | "scope": [ 1149 | "string.quoted variable.other.env" 1150 | ], 1151 | "settings": { 1152 | "foreground": "#cdd6f4" 1153 | } 1154 | }, 1155 | { 1156 | "name": "GDScript functions", 1157 | "scope": "support.function.builtin.gdscript", 1158 | "settings": { 1159 | "foreground": "#89b4fa" 1160 | } 1161 | }, 1162 | { 1163 | "name": "GDScript constants", 1164 | "scope": "constant.language.gdscript", 1165 | "settings": { 1166 | "foreground": "#fab387" 1167 | } 1168 | }, 1169 | { 1170 | "name": "Comment keywords", 1171 | "scope": "comment meta.annotation.go", 1172 | "settings": { 1173 | "foreground": "#eba0ac" 1174 | } 1175 | }, 1176 | { 1177 | "name": "go:embed, go:build, etc.", 1178 | "scope": "comment meta.annotation.parameters.go", 1179 | "settings": { 1180 | "foreground": "#fab387" 1181 | } 1182 | }, 1183 | { 1184 | "name": "Go constants (nil, true, false)", 1185 | "scope": "constant.language.go", 1186 | "settings": { 1187 | "foreground": "#fab387" 1188 | } 1189 | }, 1190 | { 1191 | "name": "GraphQL variables", 1192 | "scope": "variable.graphql", 1193 | "settings": { 1194 | "foreground": "#cdd6f4" 1195 | } 1196 | }, 1197 | { 1198 | "name": "GraphQL aliases", 1199 | "scope": "string.unquoted.alias.graphql", 1200 | "settings": { 1201 | "foreground": "#f2cdcd" 1202 | } 1203 | }, 1204 | { 1205 | "name": "GraphQL enum members", 1206 | "scope": "constant.character.enum.graphql", 1207 | "settings": { 1208 | "foreground": "#94e2d5" 1209 | } 1210 | }, 1211 | { 1212 | "name": "GraphQL field in types", 1213 | "scope": "meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql", 1214 | "settings": { 1215 | "foreground": "#f2cdcd" 1216 | } 1217 | }, 1218 | { 1219 | "name": "HTML/XML DOCTYPE as keyword", 1220 | "scope": [ 1221 | "keyword.other.doctype", 1222 | "meta.tag.sgml.doctype punctuation.definition.tag", 1223 | "meta.tag.metadata.doctype entity.name.tag", 1224 | "meta.tag.metadata.doctype punctuation.definition.tag" 1225 | ], 1226 | "settings": { 1227 | "foreground": "#cba6f7" 1228 | } 1229 | }, 1230 | { 1231 | "name": "HTML/XML-like ", 1232 | "scope": [ 1233 | "entity.name.tag" 1234 | ], 1235 | "settings": { 1236 | "foreground": "#89b4fa", 1237 | "fontStyle": "" 1238 | } 1239 | }, 1240 | { 1241 | "name": "Special characters like &", 1242 | "scope": [ 1243 | "text.html constant.character.entity", 1244 | "text.html constant.character.entity punctuation", 1245 | "constant.character.entity.xml", 1246 | "constant.character.entity.xml punctuation", 1247 | "constant.character.entity.js.jsx", 1248 | "constant.charactger.entity.js.jsx punctuation", 1249 | "constant.character.entity.tsx", 1250 | "constant.character.entity.tsx punctuation" 1251 | ], 1252 | "settings": { 1253 | "foreground": "#f38ba8" 1254 | } 1255 | }, 1256 | { 1257 | "name": "HTML/XML tag attribute values", 1258 | "scope": [ 1259 | "entity.other.attribute-name" 1260 | ], 1261 | "settings": { 1262 | "foreground": "#f9e2af" 1263 | } 1264 | }, 1265 | { 1266 | "name": "Components", 1267 | "scope": [ 1268 | "meta.tag support.class.component" 1269 | ], 1270 | "settings": { 1271 | "foreground": "#89b4fa", 1272 | "fontStyle": "" 1273 | } 1274 | }, 1275 | { 1276 | "name": "Annotations", 1277 | "scope": [ 1278 | "punctuation.definition.annotation", 1279 | "storage.type.annotation" 1280 | ], 1281 | "settings": { 1282 | "foreground": "#fab387" 1283 | } 1284 | }, 1285 | { 1286 | "name": "Java enums", 1287 | "scope": "constant.other.enum.java", 1288 | "settings": { 1289 | "foreground": "#94e2d5" 1290 | } 1291 | }, 1292 | { 1293 | "name": "Java imports", 1294 | "scope": "storage.modifier.import.java", 1295 | "settings": { 1296 | "foreground": "#cdd6f4" 1297 | } 1298 | }, 1299 | { 1300 | "name": "Javadoc", 1301 | "scope": "comment.block.javadoc.java keyword.other.documentation.javadoc.java", 1302 | "settings": { 1303 | "fontStyle": "" 1304 | } 1305 | }, 1306 | { 1307 | "name": "Exported Variable", 1308 | "scope": "meta.export variable.other.readwrite.js", 1309 | "settings": { 1310 | "foreground": "#eba0ac" 1311 | } 1312 | }, 1313 | { 1314 | "name": "JS/TS constants & properties", 1315 | "scope": [ 1316 | "variable.other.constant.js", 1317 | "variable.other.constant.ts", 1318 | "variable.other.property.js", 1319 | "variable.other.property.ts" 1320 | ], 1321 | "settings": { 1322 | "foreground": "#cdd6f4" 1323 | } 1324 | }, 1325 | { 1326 | "name": "JSDoc", 1327 | "scope": [ 1328 | "variable.other.jsdoc", 1329 | "comment.block.documentation variable.other" 1330 | ], 1331 | "settings": { 1332 | "foreground": "#cdd6f4", 1333 | "fontStyle": "" 1334 | } 1335 | }, 1336 | { 1337 | "name": "JSDoc keywords", 1338 | "scope": "storage.type.class.jsdoc", 1339 | "settings": { 1340 | "fontStyle": "" 1341 | } 1342 | }, 1343 | { 1344 | "scope": "support.type.object.console.js", 1345 | "settings": { 1346 | "foreground": "#cdd6f4" 1347 | } 1348 | }, 1349 | { 1350 | "name": "Node constants as keywords (module, etc.)", 1351 | "scope": [ 1352 | "support.constant.node", 1353 | "support.type.object.module.js" 1354 | ], 1355 | "settings": { 1356 | "foreground": "#cba6f7" 1357 | } 1358 | }, 1359 | { 1360 | "name": "implements as keyword", 1361 | "scope": "storage.modifier.implements", 1362 | "settings": { 1363 | "foreground": "#cba6f7" 1364 | } 1365 | }, 1366 | { 1367 | "name": "Builtin types", 1368 | "scope": [ 1369 | "constant.language.null.js", 1370 | "constant.language.null.ts", 1371 | "constant.language.undefined.js", 1372 | "constant.language.undefined.ts", 1373 | "support.type.builtin.ts" 1374 | ], 1375 | "settings": { 1376 | "foreground": "#cba6f7" 1377 | } 1378 | }, 1379 | { 1380 | "scope": "variable.parameter.generic", 1381 | "settings": { 1382 | "foreground": "#f9e2af" 1383 | } 1384 | }, 1385 | { 1386 | "name": "Arrow functions", 1387 | "scope": [ 1388 | "keyword.declaration.function.arrow.js", 1389 | "storage.type.function.arrow.ts" 1390 | ], 1391 | "settings": { 1392 | "foreground": "#94e2d5" 1393 | } 1394 | }, 1395 | { 1396 | "name": "Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)", 1397 | "scope": "punctuation.decorator.ts", 1398 | "settings": { 1399 | "foreground": "#89b4fa", 1400 | "fontStyle": "italic" 1401 | } 1402 | }, 1403 | { 1404 | "name": "of/ keyof / typeof as keywords", 1405 | "scope": [ 1406 | "keyword.operator.expression.keyof.ts", 1407 | "keyword.operator.expression.typeof.js", 1408 | "keyword.operator.expression.typeof.ts", 1409 | "keyword.operator.expression.of.ts", 1410 | "keyword.operator.expression.of.js" 1411 | ], 1412 | "settings": { 1413 | "foreground": "#cba6f7" 1414 | } 1415 | }, 1416 | { 1417 | "name": "Vue components", 1418 | "scope": [ 1419 | "support.class.component.vue" 1420 | ], 1421 | "settings": { 1422 | "foreground": "#89b4fa" 1423 | } 1424 | }, 1425 | { 1426 | "name": "Julia macros", 1427 | "scope": "support.function.macro.julia", 1428 | "settings": { 1429 | "foreground": "#94e2d5", 1430 | "fontStyle": "italic" 1431 | } 1432 | }, 1433 | { 1434 | "name": "Julia language constants (true, false)", 1435 | "scope": "constant.language.julia", 1436 | "settings": { 1437 | "foreground": "#fab387" 1438 | } 1439 | }, 1440 | { 1441 | "name": "Julia other constants (these seem to be arguments inside arrays)", 1442 | "scope": "constant.other.symbol.julia", 1443 | "settings": { 1444 | "foreground": "#eba0ac" 1445 | } 1446 | }, 1447 | { 1448 | "name": "LaTeX preamble", 1449 | "scope": "text.tex keyword.control.preamble", 1450 | "settings": { 1451 | "foreground": "#94e2d5" 1452 | } 1453 | }, 1454 | { 1455 | "name": "LaTeX be functions", 1456 | "scope": "text.tex support.function.be", 1457 | "settings": { 1458 | "foreground": "#89dceb" 1459 | } 1460 | }, 1461 | { 1462 | "name": "LaTeX math", 1463 | "scope": "constant.other.general.math.tex", 1464 | "settings": { 1465 | "foreground": "#f2cdcd" 1466 | } 1467 | }, 1468 | { 1469 | "name": "Lua docstring keywords", 1470 | "scope": "comment.line.double-dash.documentation.lua storage.type.annotation.lua", 1471 | "settings": { 1472 | "foreground": "#cba6f7", 1473 | "fontStyle": "" 1474 | } 1475 | }, 1476 | { 1477 | "name": "Lua docstring variables", 1478 | "scope": [ 1479 | "comment.line.double-dash.documentation.lua entity.name.variable.lua", 1480 | "comment.line.double-dash.documentation.lua variable.lua" 1481 | ], 1482 | "settings": { 1483 | "foreground": "#cdd6f4" 1484 | } 1485 | }, 1486 | { 1487 | "scope": [ 1488 | "heading.1.markdown punctuation.definition.heading.markdown", 1489 | "heading.1.markdown", 1490 | "markup.heading.atx.1.mdx", 1491 | "markup.heading.atx.1.mdx punctuation.definition.heading.mdx", 1492 | "markup.heading.setext.1.markdown", 1493 | "markup.heading.heading-0.asciidoc" 1494 | ], 1495 | "settings": { 1496 | "foreground": "#f38ba8" 1497 | } 1498 | }, 1499 | { 1500 | "scope": [ 1501 | "heading.2.markdown punctuation.definition.heading.markdown", 1502 | "heading.2.markdown", 1503 | "markup.heading.atx.2.mdx", 1504 | "markup.heading.atx.2.mdx punctuation.definition.heading.mdx", 1505 | "markup.heading.setext.2.markdown", 1506 | "markup.heading.heading-1.asciidoc" 1507 | ], 1508 | "settings": { 1509 | "foreground": "#fab387" 1510 | } 1511 | }, 1512 | { 1513 | "scope": [ 1514 | "heading.3.markdown punctuation.definition.heading.markdown", 1515 | "heading.3.markdown", 1516 | "markup.heading.atx.3.mdx", 1517 | "markup.heading.atx.3.mdx punctuation.definition.heading.mdx", 1518 | "markup.heading.heading-2.asciidoc" 1519 | ], 1520 | "settings": { 1521 | "foreground": "#f9e2af" 1522 | } 1523 | }, 1524 | { 1525 | "scope": [ 1526 | "heading.4.markdown punctuation.definition.heading.markdown", 1527 | "heading.4.markdown", 1528 | "markup.heading.atx.4.mdx", 1529 | "markup.heading.atx.4.mdx punctuation.definition.heading.mdx", 1530 | "markup.heading.heading-3.asciidoc" 1531 | ], 1532 | "settings": { 1533 | "foreground": "#a6e3a1" 1534 | } 1535 | }, 1536 | { 1537 | "scope": [ 1538 | "heading.5.markdown punctuation.definition.heading.markdown", 1539 | "heading.5.markdown", 1540 | "markup.heading.atx.5.mdx", 1541 | "markup.heading.atx.5.mdx punctuation.definition.heading.mdx", 1542 | "markup.heading.heading-4.asciidoc" 1543 | ], 1544 | "settings": { 1545 | "foreground": "#89b4fa" 1546 | } 1547 | }, 1548 | { 1549 | "scope": [ 1550 | "heading.6.markdown punctuation.definition.heading.markdown", 1551 | "heading.6.markdown", 1552 | "markup.heading.atx.6.mdx", 1553 | "markup.heading.atx.6.mdx punctuation.definition.heading.mdx", 1554 | "markup.heading.heading-5.asciidoc" 1555 | ], 1556 | "settings": { 1557 | "foreground": "#cba6f7" 1558 | } 1559 | }, 1560 | { 1561 | "scope": "markup.bold", 1562 | "settings": { 1563 | "foreground": "#f38ba8", 1564 | "fontStyle": "bold" 1565 | } 1566 | }, 1567 | { 1568 | "scope": "markup.italic", 1569 | "settings": { 1570 | "foreground": "#f38ba8", 1571 | "fontStyle": "italic" 1572 | } 1573 | }, 1574 | { 1575 | "scope": "markup.strikethrough", 1576 | "settings": { 1577 | "foreground": "#a6adc8", 1578 | "fontStyle": "strikethrough" 1579 | } 1580 | }, 1581 | { 1582 | "name": "Markdown auto links", 1583 | "scope": [ 1584 | "punctuation.definition.link", 1585 | "markup.underline.link" 1586 | ], 1587 | "settings": { 1588 | "foreground": "#89b4fa" 1589 | } 1590 | }, 1591 | { 1592 | "name": "Markdown links", 1593 | "scope": [ 1594 | "text.html.markdown punctuation.definition.link.title", 1595 | "string.other.link.title.markdown", 1596 | "markup.link", 1597 | "punctuation.definition.constant.markdown", 1598 | "constant.other.reference.link.markdown", 1599 | "markup.substitution.attribute-reference" 1600 | ], 1601 | "settings": { 1602 | "foreground": "#b4befe" 1603 | } 1604 | }, 1605 | { 1606 | "name": "Markdown code spans", 1607 | "scope": [ 1608 | "punctuation.definition.raw.markdown", 1609 | "markup.inline.raw.string.markdown", 1610 | "markup.raw.block.markdown" 1611 | ], 1612 | "settings": { 1613 | "foreground": "#a6e3a1" 1614 | } 1615 | }, 1616 | { 1617 | "name": "Markdown triple backtick language identifier", 1618 | "scope": "fenced_code.block.language", 1619 | "settings": { 1620 | "foreground": "#89dceb" 1621 | } 1622 | }, 1623 | { 1624 | "name": "Markdown triple backticks", 1625 | "scope": [ 1626 | "markup.fenced_code.block punctuation.definition", 1627 | "markup.raw support.asciidoc" 1628 | ], 1629 | "settings": { 1630 | "foreground": "#9399b2" 1631 | } 1632 | }, 1633 | { 1634 | "name": "Markdown quotes", 1635 | "scope": [ 1636 | "markup.quote", 1637 | "punctuation.definition.quote.begin" 1638 | ], 1639 | "settings": { 1640 | "foreground": "#f5c2e7" 1641 | } 1642 | }, 1643 | { 1644 | "name": "Markdown separators", 1645 | "scope": "meta.separator.markdown", 1646 | "settings": { 1647 | "foreground": "#94e2d5" 1648 | } 1649 | }, 1650 | { 1651 | "name": "Markdown list bullets", 1652 | "scope": [ 1653 | "punctuation.definition.list.begin.markdown", 1654 | "markup.list.bullet" 1655 | ], 1656 | "settings": { 1657 | "foreground": "#94e2d5" 1658 | } 1659 | }, 1660 | { 1661 | "name": "Nix attribute names", 1662 | "scope": [ 1663 | "entity.other.attribute-name.multipart.nix", 1664 | "entity.other.attribute-name.single.nix" 1665 | ], 1666 | "settings": { 1667 | "foreground": "#89b4fa" 1668 | } 1669 | }, 1670 | { 1671 | "name": "Nix parameter names", 1672 | "scope": "variable.parameter.name.nix", 1673 | "settings": { 1674 | "foreground": "#cdd6f4", 1675 | "fontStyle": "" 1676 | } 1677 | }, 1678 | { 1679 | "name": "Nix interpolated parameter names", 1680 | "scope": "meta.embedded variable.parameter.name.nix", 1681 | "settings": { 1682 | "foreground": "#b4befe", 1683 | "fontStyle": "" 1684 | } 1685 | }, 1686 | { 1687 | "name": "Nix paths", 1688 | "scope": "string.unquoted.path.nix", 1689 | "settings": { 1690 | "foreground": "#f5c2e7", 1691 | "fontStyle": "" 1692 | } 1693 | }, 1694 | { 1695 | "name": "PHP Attributes", 1696 | "scope": [ 1697 | "support.attribute.builtin", 1698 | "meta.attribute.php" 1699 | ], 1700 | "settings": { 1701 | "foreground": "#f9e2af" 1702 | } 1703 | }, 1704 | { 1705 | "name": "PHP Parameters (needed for the leading dollar sign)", 1706 | "scope": "meta.function.parameters.php punctuation.definition.variable.php", 1707 | "settings": { 1708 | "foreground": "#eba0ac" 1709 | } 1710 | }, 1711 | { 1712 | "name": "PHP Constants (null, __FILE__, etc.)", 1713 | "scope": "constant.language.php", 1714 | "settings": { 1715 | "foreground": "#cba6f7" 1716 | } 1717 | }, 1718 | { 1719 | "name": "PHP functions", 1720 | "scope": "text.html.php support.function", 1721 | "settings": { 1722 | "foreground": "#89dceb" 1723 | } 1724 | }, 1725 | { 1726 | "name": "PHPdoc keywords", 1727 | "scope": "keyword.other.phpdoc.php", 1728 | "settings": { 1729 | "fontStyle": "" 1730 | } 1731 | }, 1732 | { 1733 | "name": "Python argument functions reset to text, otherwise they inherit blue from function-call", 1734 | "scope": [ 1735 | "support.variable.magic.python", 1736 | "meta.function-call.arguments.python" 1737 | ], 1738 | "settings": { 1739 | "foreground": "#cdd6f4" 1740 | } 1741 | }, 1742 | { 1743 | "name": "Python double underscore functions", 1744 | "scope": [ 1745 | "support.function.magic.python" 1746 | ], 1747 | "settings": { 1748 | "foreground": "#89dceb", 1749 | "fontStyle": "italic" 1750 | } 1751 | }, 1752 | { 1753 | "name": "Python `self` keyword", 1754 | "scope": [ 1755 | "variable.parameter.function.language.special.self.python", 1756 | "variable.language.special.self.python" 1757 | ], 1758 | "settings": { 1759 | "foreground": "#f38ba8", 1760 | "fontStyle": "italic" 1761 | } 1762 | }, 1763 | { 1764 | "name": "python keyword flow/logical (for ... in)", 1765 | "scope": [ 1766 | "keyword.control.flow.python", 1767 | "keyword.operator.logical.python" 1768 | ], 1769 | "settings": { 1770 | "foreground": "#cba6f7" 1771 | } 1772 | }, 1773 | { 1774 | "name": "python storage type", 1775 | "scope": "storage.type.function.python", 1776 | "settings": { 1777 | "foreground": "#cba6f7" 1778 | } 1779 | }, 1780 | { 1781 | "name": "python function support", 1782 | "scope": [ 1783 | "support.token.decorator.python", 1784 | "meta.function.decorator.identifier.python" 1785 | ], 1786 | "settings": { 1787 | "foreground": "#89dceb" 1788 | } 1789 | }, 1790 | { 1791 | "name": "python function calls", 1792 | "scope": [ 1793 | "meta.function-call.python" 1794 | ], 1795 | "settings": { 1796 | "foreground": "#89b4fa" 1797 | } 1798 | }, 1799 | { 1800 | "name": "python function decorators", 1801 | "scope": [ 1802 | "entity.name.function.decorator.python", 1803 | "punctuation.definition.decorator.python" 1804 | ], 1805 | "settings": { 1806 | "foreground": "#fab387", 1807 | "fontStyle": "italic" 1808 | } 1809 | }, 1810 | { 1811 | "name": "python placeholder reset to normal string", 1812 | "scope": "constant.character.format.placeholder.other.python", 1813 | "settings": { 1814 | "foreground": "#f5c2e7" 1815 | } 1816 | }, 1817 | { 1818 | "name": "Python exception & builtins such as exit()", 1819 | "scope": [ 1820 | "support.type.exception.python", 1821 | "support.function.builtin.python" 1822 | ], 1823 | "settings": { 1824 | "foreground": "#fab387" 1825 | } 1826 | }, 1827 | { 1828 | "name": "entity.name.type", 1829 | "scope": [ 1830 | "support.type.python" 1831 | ], 1832 | "settings": { 1833 | "foreground": "#fab387" 1834 | } 1835 | }, 1836 | { 1837 | "name": "python constants (True/False)", 1838 | "scope": "constant.language.python", 1839 | "settings": { 1840 | "foreground": "#cba6f7" 1841 | } 1842 | }, 1843 | { 1844 | "name": "Arguments accessed later in the function body", 1845 | "scope": [ 1846 | "meta.indexed-name.python", 1847 | "meta.item-access.python" 1848 | ], 1849 | "settings": { 1850 | "foreground": "#eba0ac", 1851 | "fontStyle": "italic" 1852 | } 1853 | }, 1854 | { 1855 | "name": "Python f-strings/binary/unicode storage types", 1856 | "scope": "storage.type.string.python", 1857 | "settings": { 1858 | "foreground": "#a6e3a1", 1859 | "fontStyle": "italic" 1860 | } 1861 | }, 1862 | { 1863 | "name": "Python type hints", 1864 | "scope": "meta.function.parameters.python", 1865 | "settings": { 1866 | "fontStyle": "" 1867 | } 1868 | }, 1869 | { 1870 | "name": "Rust attribute", 1871 | "scope": [ 1872 | "meta.annotation.rust", 1873 | "meta.annotation.rust punctuation", 1874 | "meta.attribute.rust", 1875 | "punctuation.definition.attribute.rust" 1876 | ], 1877 | "settings": { 1878 | "foreground": "#f9e2af", 1879 | "fontStyle": "italic" 1880 | } 1881 | }, 1882 | { 1883 | "name": "Rust attribute strings", 1884 | "scope": [ 1885 | "meta.attribute.rust string.quoted.double.rust", 1886 | "meta.attribute.rust string.quoted.single.char.rust" 1887 | ], 1888 | "settings": { 1889 | "fontStyle": "" 1890 | } 1891 | }, 1892 | { 1893 | "name": "Rust keyword", 1894 | "scope": [ 1895 | "entity.name.function.macro.rules.rust", 1896 | "storage.type.module.rust", 1897 | "storage.modifier.rust", 1898 | "storage.type.struct.rust", 1899 | "storage.type.enum.rust", 1900 | "storage.type.trait.rust", 1901 | "storage.type.union.rust", 1902 | "storage.type.impl.rust", 1903 | "storage.type.rust", 1904 | "storage.type.function.rust", 1905 | "storage.type.type.rust" 1906 | ], 1907 | "settings": { 1908 | "foreground": "#cba6f7", 1909 | "fontStyle": "" 1910 | } 1911 | }, 1912 | { 1913 | "name": "Rust u/i32, u/i64, etc.", 1914 | "scope": "entity.name.type.numeric.rust", 1915 | "settings": { 1916 | "foreground": "#cba6f7", 1917 | "fontStyle": "" 1918 | } 1919 | }, 1920 | { 1921 | "name": "Rust generic", 1922 | "scope": "meta.generic.rust", 1923 | "settings": { 1924 | "foreground": "#fab387" 1925 | } 1926 | }, 1927 | { 1928 | "name": "Rust impl", 1929 | "scope": "entity.name.impl.rust", 1930 | "settings": { 1931 | "foreground": "#f9e2af", 1932 | "fontStyle": "italic" 1933 | } 1934 | }, 1935 | { 1936 | "name": "Rust module", 1937 | "scope": "entity.name.module.rust", 1938 | "settings": { 1939 | "foreground": "#fab387" 1940 | } 1941 | }, 1942 | { 1943 | "name": "Rust trait", 1944 | "scope": "entity.name.trait.rust", 1945 | "settings": { 1946 | "foreground": "#f9e2af", 1947 | "fontStyle": "italic" 1948 | } 1949 | }, 1950 | { 1951 | "name": "Rust struct", 1952 | "scope": "storage.type.source.rust", 1953 | "settings": { 1954 | "foreground": "#f9e2af" 1955 | } 1956 | }, 1957 | { 1958 | "name": "Rust union", 1959 | "scope": "entity.name.union.rust", 1960 | "settings": { 1961 | "foreground": "#f9e2af" 1962 | } 1963 | }, 1964 | { 1965 | "name": "Rust enum member", 1966 | "scope": "meta.enum.rust storage.type.source.rust", 1967 | "settings": { 1968 | "foreground": "#94e2d5" 1969 | } 1970 | }, 1971 | { 1972 | "name": "Rust macro", 1973 | "scope": [ 1974 | "support.macro.rust", 1975 | "meta.macro.rust support.function.rust", 1976 | "entity.name.function.macro.rust" 1977 | ], 1978 | "settings": { 1979 | "foreground": "#89b4fa", 1980 | "fontStyle": "italic" 1981 | } 1982 | }, 1983 | { 1984 | "name": "Rust lifetime", 1985 | "scope": [ 1986 | "storage.modifier.lifetime.rust", 1987 | "entity.name.type.lifetime" 1988 | ], 1989 | "settings": { 1990 | "foreground": "#89b4fa", 1991 | "fontStyle": "italic" 1992 | } 1993 | }, 1994 | { 1995 | "name": "Rust string formatting", 1996 | "scope": "string.quoted.double.rust constant.other.placeholder.rust", 1997 | "settings": { 1998 | "foreground": "#f5c2e7" 1999 | } 2000 | }, 2001 | { 2002 | "name": "Rust return type generic", 2003 | "scope": "meta.function.return-type.rust meta.generic.rust storage.type.rust", 2004 | "settings": { 2005 | "foreground": "#cdd6f4" 2006 | } 2007 | }, 2008 | { 2009 | "name": "Rust functions", 2010 | "scope": "meta.function.call.rust", 2011 | "settings": { 2012 | "foreground": "#89b4fa" 2013 | } 2014 | }, 2015 | { 2016 | "name": "Rust angle brackets", 2017 | "scope": "punctuation.brackets.angle.rust", 2018 | "settings": { 2019 | "foreground": "#89dceb" 2020 | } 2021 | }, 2022 | { 2023 | "name": "Rust constants", 2024 | "scope": "constant.other.caps.rust", 2025 | "settings": { 2026 | "foreground": "#fab387" 2027 | } 2028 | }, 2029 | { 2030 | "name": "Rust function parameters", 2031 | "scope": [ 2032 | "meta.function.definition.rust variable.other.rust" 2033 | ], 2034 | "settings": { 2035 | "foreground": "#eba0ac" 2036 | } 2037 | }, 2038 | { 2039 | "name": "Rust closure variables", 2040 | "scope": "meta.function.call.rust variable.other.rust", 2041 | "settings": { 2042 | "foreground": "#cdd6f4" 2043 | } 2044 | }, 2045 | { 2046 | "name": "Rust self", 2047 | "scope": "variable.language.self.rust", 2048 | "settings": { 2049 | "foreground": "#f38ba8" 2050 | } 2051 | }, 2052 | { 2053 | "name": "Rust metavariable names", 2054 | "scope": [ 2055 | "variable.other.metavariable.name.rust", 2056 | "meta.macro.metavariable.rust keyword.operator.macro.dollar.rust" 2057 | ], 2058 | "settings": { 2059 | "foreground": "#f5c2e7" 2060 | } 2061 | }, 2062 | { 2063 | "name": "Shell shebang", 2064 | "scope": [ 2065 | "comment.line.shebang", 2066 | "comment.line.shebang punctuation.definition.comment", 2067 | "comment.line.shebang", 2068 | "punctuation.definition.comment.shebang.shell", 2069 | "meta.shebang.shell" 2070 | ], 2071 | "settings": { 2072 | "foreground": "#f5c2e7", 2073 | "fontStyle": "italic" 2074 | } 2075 | }, 2076 | { 2077 | "name": "Shell shebang command", 2078 | "scope": "comment.line.shebang constant.language", 2079 | "settings": { 2080 | "foreground": "#94e2d5", 2081 | "fontStyle": "italic" 2082 | } 2083 | }, 2084 | { 2085 | "name": "Shell interpolated command", 2086 | "scope": [ 2087 | "meta.function-call.arguments.shell punctuation.definition.variable.shell", 2088 | "meta.function-call.arguments.shell punctuation.section.interpolation", 2089 | "meta.function-call.arguments.shell punctuation.definition.variable.shell", 2090 | "meta.function-call.arguments.shell punctuation.section.interpolation" 2091 | ], 2092 | "settings": { 2093 | "foreground": "#f38ba8" 2094 | } 2095 | }, 2096 | { 2097 | "name": "Shell interpolated command variable", 2098 | "scope": "meta.string meta.interpolation.parameter.shell variable.other.readwrite", 2099 | "settings": { 2100 | "foreground": "#fab387", 2101 | "fontStyle": "italic" 2102 | } 2103 | }, 2104 | { 2105 | "scope": [ 2106 | "source.shell punctuation.section.interpolation", 2107 | "punctuation.definition.evaluation.backticks.shell" 2108 | ], 2109 | "settings": { 2110 | "foreground": "#94e2d5" 2111 | } 2112 | }, 2113 | { 2114 | "name": "Shell EOF", 2115 | "scope": "entity.name.tag.heredoc.shell", 2116 | "settings": { 2117 | "foreground": "#cba6f7" 2118 | } 2119 | }, 2120 | { 2121 | "name": "Shell quoted variable", 2122 | "scope": "string.quoted.double.shell variable.other.normal.shell", 2123 | "settings": { 2124 | "foreground": "#cdd6f4" 2125 | } 2126 | } 2127 | ] 2128 | } 2129 | -------------------------------------------------------------------------------- /src/components/BaseHead.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import "../styles/global.css"; 3 | 4 | interface Props { 5 | title: string; 6 | description: string; 7 | image?: string; 8 | } 9 | 10 | const { 11 | title, 12 | description, 13 | image = new URL("/images/banner.png", Astro.url), 14 | } = Astro.props; 15 | --- 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | {title} 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 51 | 52 | 53 | 54 | 61 | -------------------------------------------------------------------------------- /src/components/Blog.tsx: -------------------------------------------------------------------------------- 1 | export interface Props { 2 | title: string; 3 | description: string; 4 | date: string; 5 | readingTime: string; 6 | url: string; 7 | } 8 | 9 | export default function Blog({ 10 | title, 11 | description, 12 | date, 13 | url, 14 | readingTime, 15 | }: Props) { 16 | return ( 17 | 22 |

23 | {title} 24 |

25 | 26 |

{description}

27 | 28 |
29 | 36 | 37 | 38 | 39 | {readingTime} 40 |
41 |
42 | ); 43 | } 44 | -------------------------------------------------------------------------------- /src/components/BlogPosts.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useRef, useState } from "react"; 2 | import Fuse, { type FuseResult } from "fuse.js"; 3 | import type { CollectionEntry } from "astro:content"; 4 | import Blog from "./Blog"; 5 | 6 | export interface BlogPost { 7 | url: string; 8 | frontmatter: CollectionEntry<"blog">["data"] & { 9 | readingTime: string; 10 | }; 11 | } 12 | 13 | export function BlogPosts({ posts }: { posts: BlogPost[] }) { 14 | const inputRef = useRef(null); 15 | const [query, setQuery] = useState(""); 16 | 17 | const [results, setResults] = useState[] | null>(null); 18 | 19 | const fuse = new Fuse(posts, { 20 | keys: [ 21 | { 22 | name: "title", 23 | getFn: (post) => post.frontmatter.title, 24 | }, 25 | { 26 | name: "description", 27 | getFn: (post) => post.frontmatter.description, 28 | }, 29 | ], 30 | threshold: 0.3, 31 | }); 32 | 33 | useEffect(() => { 34 | const searchParams = new URLSearchParams(window.location.search).get("q"); 35 | 36 | if (searchParams) setQuery(searchParams); 37 | 38 | setTimeout(() => { 39 | if (inputRef.current) { 40 | inputRef.current.selectionStart = inputRef.current.selectionEnd = 41 | searchParams?.length || 0; 42 | } 43 | }, 50); 44 | }, []); 45 | 46 | useEffect(() => { 47 | setResults(query.length > 0 ? fuse.search(query) : null); 48 | 49 | if (query.length > 0) { 50 | const searchParams = new URLSearchParams(window.location.search); 51 | searchParams.set("q", query); 52 | 53 | const newUrl = `${window.location.pathname}?${searchParams.toString()}`; 54 | history.pushState(null, "", newUrl); 55 | } else { 56 | history.pushState(null, "", window.location.pathname); 57 | } 58 | }, [query]); 59 | 60 | return ( 61 | <> 62 | setQuery(event.target.value)} 71 | className="w-full px-4 py-2 text-(neutral-200 lg) placeholder:text-neutral-400 bg-neutral-800 rounded-xl focus:(outline-none ring-2 ring-themeMain) mb-6" 72 | /> 73 | 74 | {results ? ( 75 | results.length > 0 ? ( 76 | results.map((result) => ( 77 | 85 | )) 86 | ) : ( 87 | <> 88 | 89 | No posts found. Maybe try one of these instead? 90 | 91 | 92 |
93 | {posts.slice(0, 3).map((post) => ( 94 | 102 | ))} 103 | 104 | ) 105 | ) : ( 106 | posts.map((post) => ( 107 | 115 | )) 116 | )} 117 | 118 | ); 119 | } 120 | -------------------------------------------------------------------------------- /src/components/Footer.astro: -------------------------------------------------------------------------------- 1 |
2 | 3 | 8 | -------------------------------------------------------------------------------- /src/components/Header.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import HeaderLink from "./HeaderLink.astro"; 3 | --- 4 | 5 |
6 |

7 | ZemPosts 14 | ZemPosts 15 |

16 | 23 |
24 | 25 | 33 | -------------------------------------------------------------------------------- /src/components/HeaderLink.astro: -------------------------------------------------------------------------------- 1 | --- 2 | export type Props = astroHTML.JSX.AnchorHTMLAttributes; 3 | 4 | const { href, ...props } = Astro.props; 5 | 6 | const { pathname } = Astro.url; 7 | const isActive = href === pathname || href === pathname.replace(/\/$/, ""); 8 | --- 9 | 10 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/components/Project.astro: -------------------------------------------------------------------------------- 1 | --- 2 | export interface Props { 3 | repo: string; 4 | owner: string; 5 | description: string; 6 | stars: string; 7 | language: string; 8 | } 9 | 10 | const { repo, owner, description, stars, language } = Astro.props; 11 | --- 12 | 13 | 18 |
21 |
22 | {repo} 23 |

{description}

24 |
25 |
26 |
27 | 28 | 36 | 41 | 42 | 43 | {stars} 44 |
45 | 46 | 47 | 48 |
{language}
49 |
50 |
51 |
52 | -------------------------------------------------------------------------------- /src/config.ts: -------------------------------------------------------------------------------- 1 | export const SITE_TITLE = "ZemPosts - "; 2 | export const SITE_DESCRIPTION = "Post & Connect with Developers"; 3 | -------------------------------------------------------------------------------- /src/content/blog/Contributing.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | layout: ../../layouts/BlogPost.astro 3 | title: How to Contribute to ZemPosts? 4 | description: Steps on how you can add your Post to ZemPosts 5 | pubDate: 07/06/24 6 | --- 7 | 8 | ## ➕ Adding your Post: 9 | 10 | 1. Fork a copy of this Repository on your Github account by clicking below, 11 | 12 | - [Fork](https://github.com/Zemerik/ZemPosts/fork) 13 | 14 | 2. Head over to your **Forked** Repository, and locate the `src/content` directory. Create a new file, and name it `[Post Title].mdx` 15 | 16 | > [!Note] 17 | > Remember to replace `[Post Title]` with your actual Post Title. 18 | 19 | 3. Add the following code snippet in the file, 20 | 21 | ```md 22 | --- 23 | layout: ../../layouts/BlogPost.astro 24 | title: POST TILE HERE 25 | description: POST DESCRIPTION HERE 26 | pubDate: Month/Day/Year 27 | --- 28 | ``` 29 | 30 | >[!Note] 31 | > Keep the `POST TITLE` and `POST DESCRIPTION` short and concise! 32 | 33 | 4. Write your Post Content after the Code Snippet which you just copied using `Markdown` or `HTML`. 34 | 35 | 5. Save the file in which you have wrote your post content, and open a pull-request on this repository. Your PR will be **merged**/**reviewed** as soon as possible! 36 | 37 | ## 🐞Bug/Issue/Feedback/Feature Request: 38 | 39 | - If you would like to report a bug, a issue, implement any feedack, or request any feature, you are free to do so by opening a issue on this repository. Remember to give a detailed explanation of what you are trying to say, and how it will help the website. 40 | 41 | ## 💁 Support: 42 | 43 | For any kind of support or inforrmation, you are free to join our **Discord Server**, 44 | 45 | 46 | 47 | 48 | 49 |

50 | Thanks for Reading🙏 51 |

52 | 53 | -------------------------------------------------------------------------------- /src/content/blog/Utkarsh_ZemPost.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | layout: ../../layouts/BlogPost.astro 3 | title: Utkarsh ZemPost 4 | description: This is my first post on ZemPost i am checking out how to use ZemPost.Its somewhat great. 5 | pubDate: 7/7/2024 6 | --- 7 | 8 | 9 | #
Utkarsh Post
10 | 11 |
This is my first post on ZemPost this platform is somewhat good it feels my developer skills are helping somewhere that's great.
12 | 13 | ###
Thank You
14 | 15 | --- 16 | -------------------------------------------------------------------------------- /src/content/blog/check_website_accessibility.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | layout: ../../layouts/BlogPost.astro 3 | title: 5 sites to check website accessibility 4 | description: Check your site's accessibility with these tools 5 | pubDate: 8/17/2024 6 | --- 7 | 8 | Website accessibility is more important than ever nowadays. It can be a bit difficult to manually check if your site follows all of the standards or not. So, I've made a list of some services that will help you to ensure you follow all of the standards! 9 | 10 | And the best part? They are all FREE!!! 11 | 12 | ## Wave 13 | 14 | https://wave.webaim.org/ 15 | 16 | ![Wave preview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9jrl3iyctt53x2lr7aeg.png) 17 | 18 | WAVE® is a suite of evaluation tools that help authors make web content more accessible to individuals with disabilities. It identifies many accessibility and WCAG errors and supports human evaluation of web content, focusing on issues that impact end users and promoting web accessibility education. 19 | 20 | ## Accessibilitychecker 21 | 22 | https://www.accessibilitychecker.org/ 23 | 24 | ![Accessibilitychecker preview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zl5qrex2nx7nthy7njtj.png) 25 | 26 | AccessibilityChecker provides a free ADA and WCAG compliance checker that identifies web accessibility issues and gives exact instructions for fixing them. 27 | 28 | ## Accessibe 29 | 30 | https://accessibe.com/accessscan 31 | 32 | ![Accessibe preview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wbglpzph1x2dv3p7j8c.png) 33 | 34 | Accessibe allows you to find out if your site is accessible & ADA  Compliant or not. 35 | 36 | ## Websiteaccessibilitychecker 37 | 38 | https://websiteaccessibilitychecker.com/checker/index.php 39 | 40 | ![Websiteaccessibilitychecker preview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9lfldv8irssitzeikdlx.png) 41 | 42 | Their site looks very old. To be honest, it's probably the worst one in this list. They failed to detect any flaws in one of my sites (which has some accessibility issues). 43 | 44 | ## Deque 45 | 46 | https://www.deque.com/free-accessibility-test/ 47 | 48 | ![Deque preview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jjg27q2aysp7geudlxc.png) 49 | 50 | Find the accessibility issues you need to fix and meet your compliance goals. A quick automated scan, powered by axe, provides a summary report and an offer to book an in-depth consultation with a Deque expert. 51 | -------------------------------------------------------------------------------- /src/content/blog/how_to_create_discord_bot.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | layout: ../../layouts/BlogPost.astro 3 | title: How to Create a Discord Bot? 4 | description: Learn how to create a simple discord bot 5 | pubDate: 10/20/2024 6 | --- 7 | 8 | # How to Code a Discord bot? 9 | 10 | ## 💻STEP 1 - Setting up your workspace: 11 | 12 | - Head over to the terminal of your project and type, `npm init` to set up a nodejs project. 13 | 14 | ## 😃Step 2 - Add the Code: 15 | 16 | - Copy Paste the following code in your entry point, 17 | 18 | ```js 19 | const express = require('express') 20 | const Discord = require('discord.js') 21 | const app = express(); 22 | 23 | app.listen(3000, () => { 24 | console.log("Project is running!"); 25 | }) 26 | 27 | const client = new Discord.Client({ intents: 32767 })  28 | 29 | client.on('messageCreate', async (message) => { 30 | if (message.content === "hi") { 31 | message.channel.send('helllo') 32 | } 33 | }) 34 | 35 | client.login('YOUR BOT TOKEN HERE') 36 | ``` 37 | 38 | - Remember to replace **YOUR BOT TOKEN HERE** with the actual token of your bot which can be obtained from [the developer portal](https://discord.com/developers/applications) 39 | 40 | ## 🥇Step 3 - Running your project 41 | 42 | - You are now ready to run your project. As soon as your run your project, your discord bot should appear online and send `hello` whenever someone types `hi`. 43 | 44 | -------------------------------------------------------------------------------- /src/content/blog/zaid's_post.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | layout: ../../layouts/BlogPost.astro 3 | title: Zaid's first Zempost 4 | description: Read about the journey of Zaid, a passionate student and volleyball player, who is working hard to make a big tech community that ever existed. 5 | pubDate: 7/8/24 6 | --- 7 | 8 | Zaid is a dedicated student pursuing a diploma in computer engineering. He has a passion for creating websites and has honed his skills in various web technologies. Beyond academics, Zaid excels as a A1 Zonal Level volleyball player, representing his college in numerous matches at both zonal and intercollege levels. His team has achieved remarkable success, winning multiple matches and earning recognition. Zaid's talent has brought him into the spotlight, with opportunities to play at the state level, proudly representing his college. 9 | 10 |
11 | 12 |

Founder the Impic Community

13 | Zaid is also one of the visionary founders of the Impic Community, alongside Divyanshu. This Discord community aims to create a centralized hub for like-minded individuals such as programmers, gamers, hackers, content creators, video editors, and more. The goal is to foster collaboration, support, and creativity among its members. Join the Impic Community on Discord now and be part of something great! 14 | 15 |
16 | Join the Community 17 |
18 | -------------------------------------------------------------------------------- /src/content/config.ts: -------------------------------------------------------------------------------- 1 | import { z, defineCollection } from "astro:content"; 2 | 3 | const blogCollection = defineCollection({ 4 | schema: z.object({ 5 | title: z.string(), 6 | description: z.string(), 7 | pubDate: z.string(), 8 | draft: z.boolean().optional(), 9 | readingTime: z.string().optional(), 10 | }), 11 | }); 12 | 13 | export const collections = { 14 | blog: blogCollection, 15 | }; 16 | -------------------------------------------------------------------------------- /src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /src/layouts/BlogPost.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import BaseHead from "../components/BaseHead.astro"; 3 | import Header from "../components/Header.astro"; 4 | import Footer from "../components/Footer.astro"; 5 | 6 | export interface Props { 7 | content: { 8 | title: string; 9 | description: string; 10 | pubDate: string; 11 | readingTime: string; 12 | }; 13 | } 14 | 15 | const { 16 | content: { title, description, pubDate, readingTime }, 17 | } = Astro.props; 18 | 19 | const date = new Date(pubDate).toLocaleDateString("en-us", { 20 | year: "numeric", 21 | month: "short", 22 | day: "numeric", 23 | }); 24 | 25 | const input = JSON.stringify({ 26 | title, 27 | subtitle: `${date} • ${readingTime}`, 28 | }); 29 | --- 30 | 31 | 32 | 33 | 37 | 38 | 39 | 40 |
41 |
42 |
43 |

{title}

44 | 45 |
46 |
47 | 55 | 60 | 61 | 62 | 71 |
72 | 73 |
74 | 82 | 86 | 87 | 88 | {readingTime} 89 |
90 |
91 |
92 | 93 |
94 |
95 |