İskelet örnek yazı
Hattın üzerinde denendiği fikstür: bir yazının içerebileceği her öğe, iki dilde. Phase 5'te silinecek.
- Yayımlandı
- Dizi
- Scaffold
Bu yazı iskeletin iki şeyi kanıtlaması için duruyor. Aynı klasörde İngilizce bir kardeşi var,
yani /posts/scaffold-sample ile /tr/posts/scaffold-sample birlikte var oluyor, ikisi de
diğerini hreflang ile bildiriyor ve dil değiştirici ana sayfaya uğramadan aralarında geçiyor.
Bir de bir yazının içerebileceği her öğeyi taşıyor; böylece tipografi ölçeği, metin ritmi ve kod
bloğu boşlukta değil, gerçek malzeme üzerinde görülüyor.
Gerçek bir yazı, girişe giriş yapmadan doğrudan davranışla başlar.
Başlıkta İ, ı, ğ ve ş
Türkçe her sayfada iki font dosyası yükler: ı, ç, ö ve ü latin dosyasında, ğ, ş ve İ ise
latin-ext dosyasında durur. Işığı gibi bir kelime ikisinden birden kurulur, dolayısıyla
latin-ext isteğe bağlı değildir — düşürülürse Türkçe sessizce bozulur, kelimenin ortasında
yedek bir glif belirir.
Bir kapının fiziksel tarifi sentez sonrasında hücre listesinde görünür; bu cümle burada
duruyor çünkü fi ikilisi Türkçede bitişik yazılmamalı ve serif yüzün locl kuralı bunu
sayfanın lang değerine bakarak hallediyor.
Altındaki ara başlık
Bir yazı için üç seviye yeter. Dördüncüsü, sayfanın aslında iki sayfa olmak istediği anlamına gelir.
Üç değer
Bu sitede değer taşıyan her şey onu iki kez taşır: bir kez renkle, bir kez de rengin elinden alamayacağı bir şeyle.
| Değer | Hat | Basılı |
|---|---|---|
| 0 | ince, gri | mürekkep renginde 0 |
| 1 | iki kat kalın, mavi | mavi ve kalın 1 |
| X | kesik, kırmızı, taramalı bant | kırmızı ve kalın X |
Bu tekrar işin özü. --sig-hi ile --sig-lo arasındaki parlaklık farkı yaklaşık 2:1; tek
başına hiç yetmez. O yüzden asıl işi çizgi kalınlığı yapar, renk yalnızca doğrular.
Okuyan kişi figürü on saniyede çalıştırabilsin, sonra on dakika rahatça okuyabilsin.
Tasarım özetinden gelen bu cümle; ölçü genişliğinin, satır yüksekliğinin ve dokunma hedefi boyutunun tek gerekçesi. Sayfa fazla akıllı görünmeye başladığında yeniden okunmaya değer.
Kod
Kod yazıldığı gibi dizilir. Ligatürler her yerde kapalı, yani <= iki karakterdir ve bir sinyal
adı cümlede, şemada ve dalga biçiminde aynı görünür. Aşağıdaki blok bu sayfaya yapıştırılmadı:
snippets/rising-edge-detector/rising_edge_detector.sv dosyasının kendisi, çitin file=
anahtarıyla dahil ediliyor. Yani okuyanın gördüğü kod, linter ile simülatörün okuduğu metnin ta
kendisi — ve İngilizce sayfadakiyle aynı dosya, çünkü kod ve kod yorumları çevrilmez. Kenar
sütunu dosyanın kendi satır numaralarını taşıyor; vurgulu satırlar bu sayfada da dosyada da
15–21 ile 24.
// One rising edge of sig_in produces one clock period of pulse.
//
// Reset style for this module: asynchronous, active low. One style per page,
// stated up front, so nothing on the page has to be read twice.
module rising_edge_detector (
input logic clk,
input logic rst_n,
input logic sig_in,
output logic pulse
);
// The value sig_in had one clock period ago.
logic sig_d;
always_ff @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
sig_d <= 1'b0;
end else begin
sig_d <= sig_in;
end
end
// High for exactly one clock period, on the cycle after sig_in rises.
assign pulse = sig_in & ~sig_d;
endmoduleBu blokta dikkat çeken üç şey var ve üçü de mantıkla değil, tipografiyle ilgili:
always_ffvelogicbirer anahtar kelime, tek bir renk alıyorlar;1'b0ise bir sabit ve başka bir renk alıyor.- Yorum satırı soluk ve dik. Eğik yorumlar, kod gösteren her sayfaya yalnızca eğim için 43 KB'lık bir mono italik dosya bindirirdi.
- Hiçbir kelime tirelenmiyor.
rising_edge_detectorsatır sonunda bölünse okunamazdı, bu yüzdenhyphenssite genelinde manual.
Satır numaraları yalnızca okundukları yerde çiziliyor: dosyadan gelen bir blokta — numaralar
dosyanın kendi numaraları — highlight= taşıyan bir blokta, numbers diyen her çitte ve bir
diff'te; orada aynı sütun numara yerine + veya − taşıyor. Bunların dışında, elle yazılan bir
çitte numara yok; ilk karakteri bu paragrafla aynı sol kenarda duruyor. Kenar sütunu telefonda
satırın yaklaşık onda birini yiyor ve içine sayılacak bir dosya yokken bir satır numarası hiçbir
şey ifade etmiyor:
npm run lint:svVurgu, dosyanın içine // [!code highlight] yorumu koymak yerine meta dizesinde yazılıyor;
çünkü diskteki .sv dosyası, Verilator'ın, Icarus'un ve Yosys'in okuduğu metnin aynısı
kalmalı. Elle yazılan bir çit hâlâ yorum biçimini kullanabilir; bir diff de işaretini numaranın
duracağı yere koyuyor:
logic pulse_q;
logic pulse_d, pulse_q; Matematik
Formüller KaTeX ile diziliyor; stil dosyası yalnızca formül içeren sayfalara yükleniyor. Satır içinde: bir yolun en yüksek saat frekansı . O yoldaki bolluk (slack) ise, yol üzerindeki her şey payını aldıktan sonra periyottan geriye kalan:
Bu bir tanım, ölçüm değil: bu terimlerin gerçek bir parçadaki değerleri zamanlama raporundan gelir ve bu sitede hiçbir sayı rapor olmadan yazılmaz. Blok hâlindeki bir denklem yana kayan bir kutuda duruyor; tablo ve kod satırıyla aynı gerekçeyle — uzun bir formül telefonda sayfanın genişliğini belirlememeli.
Bağlantılar ve vurgu
Metin içindeki bağlantı vurgu rengini ve altı çizgisini alır; çünkü vurgu renginin tek bir işi var: okuyanın dokunabileceği şeyi işaretlemek. Sayfada başka hiçbir şey onu ödünç alamaz — ne bir başlık, ne bir figür, ne de bir hat. Hakkında sayfası bunu kimin ve neden yazdığını anlatıyor.
Vurgu, bir kelime için eğik ve bir öbek için yarı kalın; ikisi de renk değil.