We are always glad for new contributions from community members to spread the ZKsync knowledge! If you are interested in adding a new guide to the Community Code, this is the section for you. If you are looking to contribute project changes like fixing bugs, please checkout the Readme.
Make a fork of the project and create your branches from the default main
branch.
If your PR is still a work in progress, consider putting it into a Draft status. Once your PR is ready for review, switch it back to an active PR request and any reviewers already attached will automatically receive a notification.
To add your own guide to the project, we recommend you fork and download the project from GitHub and setting it up on your local machine. Follow the Readme instructions to get dependencies installed and run the project.
It is highly recommended to review some of the documentation of the tools we use, especially Nuxt Content and Nuxt UI. Our page structure follows Nuxt Content and you can use components available from Nuxt UI including Nuxt UI Pro.
We have a template tutorial folder you can start from!
You can copy the tutorial-template
from /template
to make setting up a new tutorial easy.
Your new guide should have its own folder under /content/tutorials
. The minimum files your directory should have are
the _dir.yml
and a 10.index.md
.
The _dir.yml
file contains the metadata that describes your guide and provides the summary at the beginning of your guide.
We recommend grabbing a copy from another guide and starting from that template.
Ensure that at a minimum you have a title, authors, tags, summary, and description defined. Filling out the rest of the metadata is highly recommended to improve searchability and help readers understand what they can learn from your guide.
The 10.index.md
file is the starting point of your guide.
It may be all you need but you are free to add more pages!
By adding a number at the beginning of your markdown file, it will help automatically order your pages for navigation.
The two digit number is simply a syntax choice to help make situations like re-ordering easier.
Frontmatter is required on all markdown pages. At minimum you need a title and description.
This is displayed at the beginning header for the page.
If you do not want to display a description, simply leave the description
blank.
Writing in markdown should provide you most of the basic text editing features you'll need. However if you want to add additional UI for visual aid, you can use Nuxt UI. The syntax is slightly different with declaring Vue components in markdown.
For example, if you use a Nuxt UI Button component, the html syntax would be the following:
<UButton color="primary" variant="solid">
I am a button
</UButton>
In markdown, the syntax changes to the following:
::u-button{ color="primary" variant="solid" }
I am a button
::
You can refer to the Nuxt Content documentation on Vue Components to learn further how to customize and use vue components in markdown. We have additional custom components aside from Nuxt UI that you can use. You can discover these in our ZKsync Docs Contribution Styleguide.
Our community is diverse, made up of people from all over the globe. This means our readers may be non-native English speakers. To help everyone learn and grow with our Community Code, we adhere to industry best practices to ensure inclusivity.
Check out and read through our ZKsync Docs Contribution Styleguide to learn how to best write your guide for our community.
Please submit a PR of your branch to main on GitHub. Provide a clear description of what you're contributing.
This project uses Conventional Commits standards.
For changes that are code related, use the fix:
, feat:
, or chore:
tags in your commits.
For typo or document related changes, please use the docs:
tag.
git commit -m "docs: fix typo in guide"