Starlight'ı İsteğe Uyarlamak
Starlight duyarlı varsayılan stil ve özellikler sunar, böylece herhangi bir yapılandırmaya ihtiyaç duymadan başlayabilirsiniz. Bu rehber, Starlight sitenizin görüşünü ve hissiyatını isteğinize uyarlamak istediğinizde yardımcı olacaktır.
Logonuzu ekleyin
Site başlığına özel logo eklemek, Starlight sitesine özgün markalamanın hızlı bir yoludur.
-
src/assets/
dizinine logonuzun görsel dosyasını ekleyin:Dizinsrc/
Dizinassets/
- benim-logom.svg
Dizincontent/
- …
- astro.config.mjs
-
astro.config.mjs
içerisine Starlight’ınlogo.src
ayarı olarak logonuzun dosya yolunu ekleyin:astro.config.mjs import { defineConfig } from 'astro/config';import starlight from '@astrojs/starlight';export default defineConfig({integrations: [starlight({title: 'Logomu İçeren Dokümantasyon',logo: {src: './src/assets/benim-logom.svg',},}),],});
Varsayılan olarak, logo sitenizin başlığının ( title
) yanında görünecektir.
Logonuz sitenizin başlığını içeriyorsa, başlık metnini replacesTitle
seçeneğini ayarlayıp görsel olarak gizleyebilirsiniz.
Başlık ( title
) ekran okuyucular için dahil edilecektir, böylece başlık erişilebilir kalacaktır.
starlight({ title: 'Logomu içeren Dokümantasyon', logo: { src: './src/assets/benim-logom.svg', replacesTitle: true, },}),
Açık ve koyu varyantlar
Açık ve koyu modda logonuzun farklı versiyonlarını gösterebilirsiniz.
-
Her varyant için
src/assets/
dizinine görsel dosyasını ekleyin:Dizinsrc/
Dizinassets/
- acik-logo.svg
- koyu-logo.svg
Dizincontent/
- …
- astro.config.mjs
-
astro.config.mjs
içerisinesrc
yerinelight
vedark
seçeneklerine logo varyantlarının dosya yolunu ekleyin:starlight({title: 'Logomu İçeren Dokümantasyon',logo: {light: './src/assets/acik-logo.svg',dark: './src/assets/koyu-logo.svg',},}),
Site haritasını etkinleştirme
Starlight site haritası oluşturmak için yerleşik desteğe sahiptir. astro.config.mjs
içerisinde URL’inizi site
olarak ayarlayarak site haritası oluşturmayı etkinleştirin:
export default defineConfig({ site: 'https://stargazers.club', integrations: [starlight({ title: 'Site haritalı site' })],});
Sayfa şablonu
Varsayılan olarak, Starlight genel gezinti kenar çubuğu ve mevcut sayfa başlıklarını gösteren içindekiler listesini içeren şablon kullanır.
Sayfanın önbölümü içerisinde template: splash
ayarlayarak kenar çubuksuz daha geniş sayfa şablonu oluşturabilirsiniz.
Bu, karşılama sayfaları için özellikle iyi çalışır ve bu sitenin anasayfasında görebilirsiniz.
---title: Karşılama Sayfamtemplate: splash---
İçindekiler listesi
Starlight okuyucuların aradıkları başlığa kolayca geçmeleri için her sayfada içindekiler listesini gösterir. İçindekiler tablosunu genel olarak Starlight entegrasyonunda ya da önbölümde sayfa-bazlı isteğinize uyarlayabilir hatta etkisizleştirebilirsiniz.
Varsayılan olarak, <h2>
ve <h3>
etiketleri içindekiler listesine dahil edilir. Genel tableOfContents
içerisinde minHeadingLevel
ve maxHeadingLevel
seçeneklerini kullanarak site genelindeki başlık seviyelerini değiştiri. Bu varsayılan değerleri tekil bir sayfanın önbölümüne tableOfContents
karşılık gelen niteliklerini ekleyerek değiştirin:
---title: Sadece H2 etiketlerinin içindekiler listesinde yer aldığı sayfatableOfContents: minHeadingLevel: 2 maxHeadingLevel: 2---
defineConfig({ integrations: [ starlight({ title: 'Özel içindekiler tablosu yapılandırmasına sahip dokümanlar', tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 2 }, }), ],});
tableOfContents
seçeneğini false
olarak ayarlayıp tüm içindekiler tablosunu etkisizleştirin:
---title: İçindekiler tablosuz sayfatableOfContents: false---
defineConfig({ integrations: [ starlight({ title: 'İçindekiler tablosunun genel olarak etkisizleştirildiği dokümanlar', tableOfContents: false, }), ],});
Sosyal medya bağlantıları
Starlight’ın, site başlığına Starlight entegrasyonu içindeki social
seçeneğiyle sosyal medya hesaplarınızın bağlantısını eklemek için yerleşik desteği vardır.
Yapılandırma Referansında desteklenen tüm bağlantı ikonlarının bulunduğu listeyi bulabilirsiniz. Başka bir hizmet için desteğe ihtiyacınız varsa Github ya da Discord üzerinden bize yazın!
import { defineConfig } from 'astro/config';import starlight from '@astrojs/starlight';
export default defineConfig({ integrations: [ starlight({ title: 'Sosyal Medya Bağlantılı Dokümantasyon', social: { discord: 'https://astro.build/chat', github: 'https://github.com/withastro/starlight', }, }), ],});
Bağlantıları düzenle
Starlight her sayfanın altlığında “Sayfayı düzenle” bağlantısı gösterebilir. Bu, dokümantasyonunuzu geliştirmek için okuyucunun düzenlenecek dosyayı bulmasını kolaylaştırır. Özellikle açık kaynaklı projeler için, topluluğunuzdan gelecek katkıları cesaretlendirmeye yardımcı olabilir.
Sayfa düzenleme bağlantıları etkinleştirmek için, Starlight entegrasyon yapılandırmasında editLink.baseUrl
seçeneğine düzenlenecek reponuzu ekleyin.
editLink.baseUrl
değeri, mevcut sayfaya tam düzenleme bağlantısını oluştumak için başına ilave edilir.
Ortak desenler içerir:
- GitHub:
https://github.com/KULLANICI_ADI/REPO_ADI/edit/BRANCH_ADI/
- GitLab:
https://gitlab.com/KULLANICI_ADI/REPO_ADI/-/edit/BRANCH_ADI/
Starlight projeniz reponuzun en üstünde yer almıyorsa, baz URL sonuna projenizin yolunu ekleyin.
Bu örnek, Github’daki withastro/starlight
reposunda main
branch içinde docs/
alt dizinindeki Starlight dokümantasyonu için sayfa düzenleme bağlantısını yapılandırmayı gösterir:
import { defineConfig } from 'astro/config';import starlight from '@astrojs/starlight';
export default defineConfig({ integrations: [ starlight({ title: 'Sayfa Düzenleme Bağlantılı Dokümantasyon', editLink: { baseUrl: 'https://github.com/withastro/starlight/edit/main/docs/', }, }), ],});
İsteğe uyarlanmış 404 sayfası
Starlight varsayılan olarak sade bir 404 sayfası gösterir.
src/content/docs/
dizininize 404.md
(ya da 404.mdx
) sayfası ekleyerek isteğinize uyarlayabilirsiniz:
Dizinsrc/
Dizincontent/
Dizindocs/
- 404.md
- index.md
- astro.config.mjs
404 sayfanızda Starlight’ın tüm sayfa şablonlarını ve isteğe uyarlama tekniklerini kullanabilirsiniz. Örneğin, varsayılan 404 sayfası splash
şablonunu ve önblümdeki hero
bileşenini kullanır:
---title: '404'template: splasheditUrl: falsehero: title: '404' tagline: Sayfa bulunamadı. URL'i kontrol edin ya da arama çubuğunu kullanın.---
Varsayılan 404 sayfasını etkisizleştirme
Projeniz tamamen isteğe uyarlanmış 404 şablonuna ihtiyaç duyarsa, src/pages/404.astro
dizini oluşturabilir ve disable404Route
yapılandırma seçeneğini kullanarak Starlight’ın varsayılan yöneltmesini etkisizleştirebilirsiniz:
import { defineConfig } from 'astro/config';import starlight from '@astrojs/starlight';
export default defineConfig({ integrations: [ starlight({ title: 'İsteğe Uyarlanmış 404 Sayfalı Dokümantasyon', disable404Route: true, }), ],});
Özel yazı karakterleri
Varsayılan olarak, Starlight tüm metinler için kullanıcının cihazındaki uygun sans-serif yazı karakterlerini kullanır. Bu sayede dokümantasyon kullanıcıların aşina olduğu yazı karakterleriyle büyük yazı karakterli dosyaları yüklemek için ekstra bant genişliği ihtiyacı olmadan hızlıca yüklenir.
Starlight sitenize özel yazı karakteri eklemek zorundaysanız, yazı karakterlerini kullanmak için özel CSS dosyalarına ya da Astro stillendirme tekniği ile ayarlayabilirsiniz.
Yazı karakterlerini ayarlama
Halihazırda yazı karakteri dosyalarınız varsa, lokal ayarlama rehberini takip edin. Google Fonts kullanmak için Fontsource ayarlama rehberini takip edin.
Lokal yazı karakteri dosyalarını ayarlama
-
src/fonts/
dizininde boşfont-face.css
dosyası oluşturun ve yazı karakteri dosyalarınızı ekleyin:Dizinsrc/
Dizincontent/
- …
Dizinfonts/
- OzelYaziKarakteri.woff2
- font-face.css
- astro.config.mjs
-
src/fonts/font-face.css
içindeki her bir yazı karakteri için@font-face
deklarasyonu ekleyin. Yazı karakteri dosyasına ait dosya yolunuurl()
fonksiyonu içinde kullanın.src/fonts/font-face.css @font-face {font-family: 'Özel Yazı Karakteri';/* 'url()' içindeki yerel yazı karakteri dosyasına göreli bir yol kullanın. */src: url('./OzelYaziKarakteri.woff2') format('woff2');font-weight: normal;font-style: normal;font-display: swap;} -
astro.config.mjs
içindeki Starlight’ıncustomCss
dizisinefont-face.css
dosyanızın yolunu ekleyin:astro.config.mjs import { defineConfig } from 'astro/config';import starlight from '@astrojs/starlight';export default defineConfig({integrations: [starlight({title: 'Özel Yazı Karakterli Dokümantasyon',customCss: [// @font-face CSS dosyanıza ait dosya yolu.'./src/fonts/font-face.css',],}),],});
Fontsource yazı karakteri ayarlama
Fontsource projesi, Google Fonts ve diğer açık kaynaklı yazı karakterlerini kullanmayı basitleştirir. Kullanmak istediğiniz yazı karakterlerini ve projenize ekleyeceğiniz okumaya hazır CSS dosyalarını içeren npm modülü olarak sunar.
-
Fontsource’un kataloğundan kullanmak istediğiniz yazı karakterini bulun. Bu örnek IBM Plex Serif kullanır.
-
Seçtiğiniz yazı karakterine ait paketi yükleyin. Fontsource yazı karakteri sayfasında “Install” butonuna tıklayarak paket ismini bulabilirsiniz.
Terminal window npm install @fontsource/ibm-plex-serifTerminal window pnpm add @fontsource/ibm-plex-serifTerminal window yarn add @fontsource/ibm-plex-serif -
astro.config.mjs
içindeki Starlight’ıncustomCss
dizisine Fontsource CSS dosyalarını ekleyin:astro.config.mjs import { defineConfig } from 'astro/config';import starlight from '@astrojs/starlight';export default defineConfig({integrations: [starlight({title: 'Özel Yazı Karakterli Dokümantasyon',customCss: [// Düz ve yarı kalın font genişlikleri için Fontsource dosyaları.'@fontsource/ibm-plex-serif/400.css','@fontsource/ibm-plex-serif/600.css',],}),],});Fontsource her yazı karakteri için birden fazla CSS dosyası gönderir. Farklı genişlik ve stil içeren ve hangi yazı karakterini kullanmayı anlamak için Fontsource dokümantasyonuna göz atın.
Yazı karakterlerini kullanma
Sitenize ayarladığınız yazı karakterini uygulamak için seçtiğiniz yazı karakterinin ismini özel CSS dosyasında kullanın.
Örneğin, Starlight’ın varsayılan yazı karakterini her yerde üzerine yazmak için, --sl-font
özel niteliğini ayarlayın:
:root { --sl-font: 'IBM Plex Serif', serif;}
Ayrıca yazı karakterinizi titizlikle uygulamak için daha fazlasını hedefleyen CSS yazabilirsiniz. Örneğin, sadece ana içeriğinizde yazı karakteri uygulayıp kenar çubuğuna uygulamayabilirsiniz:
main { font-family: 'IBM Plex Serif', serif;}
isteğe uyarlanmış CSS talimatlarını sitenize kendi stilinizi eklemek için takip edin.