Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

Sorry, you do not have permission to ask a question, You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please type your username.

Please type your E-Mail.

Please choose an appropriate title for the post.

Please choose the appropriate section so your post can be easily searched.

Please choose suitable Keywords Ex: post, video.

Browse

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise

Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise Logo Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise Logo

Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise Navigation

  • Home
  • About Us
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • About Us
  • Contact Us
Home/ Questions/Q 6257

Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise Latest Questions

Author
  • 60k
Author
Asked: November 27, 20242024-11-27T04:51:07+00:00 2024-11-27T04:51:07+00:00

Documentazione con VitePress

  • 60k

Da qualche tempo ho cominciato a lavorare su diversi progetti Web con VueJS, devo dire che mi trovo molto bene, tanto che con Wintech Italia stiamo organizzando dei corsi e ne parleremo anche al prossimo Delphi Day.

Quasi subito ho notato che i siti ufficiali di Vue stesso e di gran parte dell'ecosistema Vue (Vue Router, Pinia, ecc.) sono molto simili e, a mio parere, molto ben fatti. Andando ad indagare ho scoperto che tutti usano VitePress.

Cos'è VitePress

VitePress è un generatore di siti statici, progettato specificamente per creare siti di documentazione tecnica. VitePress è stato sviluppato da Evan You, il creatore di Vue.js, garantendo una profonda integrazione con l'ecosistema Vue. Nonostante questo non richiede la conoscenza di Vue per essere usato, infatti permette di generare la documentazione a partire da una serie di pagine scritte in Markdown.

Devo dire che VitePress mi è piaciuto molto, soprattutto per la sua estrema semplicità d'uso e per la sua flessibilità, tanto che abbiamo deciso di usarlo per riscrivere e aggiornare tutta la documentazione di WiRL.

WiRL docs

Come si usa

Se andate sul sito ufficiale troverete un'ottima guida all'installazione ma che purtroppo da per scontato abbiate già un progetto basato su npm. Qui invece voglio partire da zero per chi abbia un progetto che, come WiRL, non ha niente a che fare col mondo Web/JavaScript. In questo esempio creeremo un nuovo progetto contenete solo la documentazione, ma se volete inserire la documentazione in un progetto preesistente i passaggi sono analoghi.

Inizializzazione

Innanzitutto, se già non l'avete, è necessario installare NodeJS. Potete scaricarlo dal sito ufficiale. Quindi aprite un prompt dei comandi e digitate:

node -v 
Enter fullscreen mode Exit fullscreen mode

oppure:

npm -v 
Enter fullscreen mode Exit fullscreen mode

dovreste vedere le rispettive versioni. Se non funziona probabilmente non li avete installati correttamente o non sono stati aggiunti al path di sistema.

Creiamo il folder dove inserire il progetto e ci posizioniamo li:

mkdir MyNewProject cd MyNewProject 
Enter fullscreen mode Exit fullscreen mode

a questo punto inizializziamo il progetto:

npm init 
Enter fullscreen mode Exit fullscreen mode

Npm chiederà un po' di informazioni: nome del progetto, versione, ecc. potete lasciare tutti i default premendo invio o modificarli a vostro piacimento. Al termine verrà creato un file package.json contenente tutte le informazioni richieste in precedenza, che eventualmente è possibile modificare.

Installazione di VitePress

Una volta inizializzato il package possiamo procedere all'installazione di VitePress digitando il seguente comando:

npm add -D vitepress 
Enter fullscreen mode Exit fullscreen mode

Questo andrà ad aggiungere al file package.json una dipendenza di sviluppo relativa a VitePress e provvederà anche a scaricare il pacchetto nella directory node_modules. Ricordate di inserire node_modules tra i file da ignorare se usate un version control.

Setup Wizard

Image description

Ora potremo andare direttamente a scrivere la configurazione di VitePress e la documentazione ma in realtà è decisamente più comodo farsi generare lo scheletro del codice direttamente dal wizard di VitePress:

npx vitepress init 
Enter fullscreen mode Exit fullscreen mode

Anche in questo caso vi verranno fatte alcune domande. Io di solito le confermo tutte tranne per la gestione dei TypeScript per la configurazione e la creazione dei file nella directory docs invece che sulla root.

┌  Welcome to VitePress! │ ◇  Where should VitePress initialize the config? │  ./docs │ ◇  Site title: │  My Awesome Project │ ◇  Site description: │  A VitePress Site │ ◇  Theme: │  ● Default Theme (Out of the box, good-looking docs) │  ○ Default Theme + Customization │  ○ Custom Theme │ ◇  Use TypeScript for config and theme files? │  ○ Yes │  ● No │   ◇  Add VitePress npm scripts to package.json? │  ● Yes │  ○ No   └ 
Enter fullscreen mode Exit fullscreen mode

Se avete risposto di sì alla domanda sulla generazione degli script potete già avviare il vostro nuovo sito con:

npm run docs:dev 
Enter fullscreen mode Exit fullscreen mode

In pochi secondi verrà avviato un server HTTP che potete usare per visualizzare le pagine puntando il browser all'URL indicato. Il server rimane attivo finche non premete q e se modificate o aggiungete una pagina andrà a forzare il caricamento automatico della nuova versione sul browser.

Creazione del sito

A questo punto si può precedere alla configurazione del sito vero è proprio. il wizard in effetti avrà creato diversi file che potete andare a modificare.

.  ├─ .vitepress  │  └─ config.mjs  ├─ api-examples.md  ├─ markdown-examples.md  └─ index.md 
Enter fullscreen mode Exit fullscreen mode

In particolare:

  • index.md: contiene la home page
  • .vitepress/config.mjs: contiene l'indice di tutte le pagine
  • gli altri sono file di esempio che potete anche eliminare

Quindi semplicemente andando a scrivere le vostre pagine e aggiungendole all'indice potete creare la vostra guida. Tutte le pagine devono essere scritte in markdown, se non lo conoscete trovate una guida qui.

Deployment

Una volta creato un sito che vi soddisfa potete procedere al deployment:

npm run docs:build 
Enter fullscreen mode Exit fullscreen mode

Questo comando genererà tutti i file necessari nella directory .vitepressdist. Potete semplicemente copiarli su qualsiasi sito che vi offre una spazio web e saranno visibili da chiunque.

Eventualmente sito ufficiale trovate una guida per fare deploment su una miriade di piattaforme:

  • Netlify / Vercel / Cloudflare Pages / AWS Amplify / Render
  • GitHub Pages
  • GitLab Pages
  • Azure Static Web Apps
  • Firebase
  • Surge
  • Heroku
  • Edgio
  • Kinsta Static Site Hosting
  • Stormkit
  • Nginx

Altro

Come dicevo all'inizio VitePress permette una serie infinita di personalizzazioni, alcune offerte direttamente e altre attraverso plugin di terze parti. Giusto per avere un'idea:

  • Internazionalizzazione
  • Temi custom
  • Motore di ricerca integrato
  • Supporto a mermaid
  • Generazione della sitemap
  • Supporto a Frontmatter
  • Utilizzo di Vue all'interno dei file markdown

documentationvitepressvuewebdev
  • 0 0 Answers
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

Sidebar

Ask A Question

Stats

  • Questions 4k
  • Answers 0
  • Best Answers 0
  • Users 1k
  • Popular
  • Answers
  • Author

    How to ensure that all the routes on my Symfony ...

    • 0 Answers
  • Author

    Insights into Forms in Flask

    • 0 Answers
  • Author

    Kick Start Your Next Project With Holo Theme

    • 0 Answers

Top Members

Samantha Carter

Samantha Carter

  • 0 Questions
  • 20 Points
Begginer
Ella Lewis

Ella Lewis

  • 0 Questions
  • 20 Points
Begginer
Isaac Anderson

Isaac Anderson

  • 0 Questions
  • 20 Points
Begginer

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help

Footer

Querify Question Shop: Explore Expert Solutions and Unique Q&A Merchandise

Querify Question Shop: Explore, ask, and connect. Join our vibrant Q&A community today!

About Us

  • About Us
  • Contact Us
  • All Users

Legal Stuff

  • Terms of Use
  • Privacy Policy
  • Cookie Policy

Help

  • Knowledge Base
  • Support

Follow

© 2022 Querify Question. All Rights Reserved

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.