tarciozemel / nostr-how

Home Page:https://nostr-how.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ’œ Nostr.how

A comprehensive guide to all things Nostr. Including step-by-step setup guides and details on clients, relays, and NIPs.

Table of contents

🐣 Getting started with the codebase

Nostr.how is built with Svelte, a lightweight javascript framework.

  1. Clone this repo.
  2. Install the dependencies npm install
  3. Run the development server with npm run dev
  4. Access the site in development at http://localhost:5173

🚨 IMPORTANT

If you were a previous contributor to Nostr.how I have rewritten the site from Next.js to Svelte (change effective Apr 13 2023). Please double check that your local copy is up to date and accurate.

πŸ«‚ Contributing

We're always looking for writers, coders, and translators to help us make Nostr.how more useful. A few more details below on how you can contribute. If you have an idea on how to make the site better in any way, please let me know.

Create or Edit content

If you recently learned something new about Nostr it's likely that other people don't know it yet! Writing new content for Nostr.how is easy. Feel free to write in whatever format you'd like and then reach out to me on Nostr and I'll get the page into the codebase (or, if you're technical, feel free to create a PR directly).

If you're less of a writer but have a sharp eye for typos and grammar, feel free to create issues here in Github for things you find that could be improved.

Translations

Translations in Nostr.how are done in two parts. For UI elements and navigation items we use in i18n library and simple JSON files to store the translated strings. The main content of each page is written in Markdown and each page must be translated separately and put into the correct directory in the codebase.

i18n JSON files

These files are found in the /src/lib/locales/ directory here. Each new language needs to have it's own file named with the ISO 3166 Alpha-2 code. E.g. en.json for English and it.json for Italian.

Currently we're not creating sub-localizations for regions, e.g. en-gb.json for the UK as distinct from the United States.

To translate these files, copy the en.json file and change only the values, not the keys, of each item.

JSON file

Markdown pages

Each of the individual pages of content are in the /src/routes/pages directory here. The pages for each language are in a folder with the corresponding Alpha-2 two letter code for that language.

Here's how to create files for a new language:

  1. Create a new folder with the 2 letter country code as the name. E.g. /src/routes/pages/es/ for Spanish.
  2. Create blank files with the same names as the files in the /src/routes/pages/en/ (english) directory. It's important that the names are exactly the same so that they can be dynamically loaded.
  3. Translate each page.
    1. The section at the top (between the ---) is called Frontmatter and it's really important that the formatting stays the same. Please don't change the title or description keys, but definitely translate the text after.
    2. The full page should be translated to your target language.
    3. For URLs to other pages, please change the two letter country code to your target language. e.g. /en/get-started should change to /fr/get-started if you're translating to French.
    4. It's ok to change the anchor links for each header to the target language. These make it easy for people to link to specific parts of the page. e.g. ## [Β§](#understanding-keys) should chance to something like ## [Β§](#compendere-chiavi) if you're translating to Italian.
    5. That's it.
  4. If you'd like to add any images or create new images specific for a given language please get in touch. I'll be happy to help you add them to the right places.

πŸ“œ License

The Nostr How project is open source software under the MIT License.

About

https://nostr-how.vercel.app


Languages

Language:Svelte 61.2%Language:TypeScript 14.5%Language:CSS 14.2%Language:JavaScript 6.4%Language:HTML 3.7%