Észrevettem, hogy a kódomat rendereléskor néha különféle színekkel emelik ki.
- Mi a szintaktikai kiemelés?
- Hogyan működik?
- Miért nincs kiemelve a kódom helyesen?
- Hogyan jelenthetem a hibát, vagy új nyelvet kérhetek?
- Hogyan használhatom a szintaxis kiemelését?
- Mely nyelvek érhetők el jelenleg a Stack Exchange-en?
Hozzászólások
Válasz
Mi a szintaxis kiemelése?
A szintaxis kiemelés lehetővé teszi, hogy a bejegyzésekben lévő kód kiemelhető legyen az általa írt nyelv alapján, hogy könnyebben olvasható legyen.
Hogyan működik?
A Stack Exchange nem rendelkezik saját szintaxis kiemelő motorral. highlight.js , és nem feltétlenül használja az adott könyvtár legújabb kiadását. Ezért a Stack Exchange nem képes kezelni a szintaxis kiemelésével kapcsolatos hibákat és szolgáltatáskéréseket.
A szintaktikai kiemelés a címkék alapján hozzárendelésre kerül az előnézethez, amikor a bejegyzéseket 5 másodpercre abbahagyja.
Miért nincs megfelelően kiemelve a kódom?
1. Ellenőrizze, hogy az Ön által használt webhelyen engedélyezve van-e a szintaxis kiemelés
A teljes lista elérhető a Metán . Ha a szintaxis kiemelése nincs engedélyezve a egy webhely kövesse a kérdésben található utasításokat.
2. Ellenőrizze, hogy a highlight.js
támogatja-e a nyelvet.
Nézze meg a A highlight.js által támogatott nyelvek listája . Ha a nyelved nincs a listán, akkor azt a highlight.js projekten belül kell létrehozni, mielőtt a Stack Exchange telepíthetné.
Ha egy a nyelv már szerepel a listán, de a Stack Exchange-en nem használják, kérjük, tegyen fel egy szolgáltatáskérést itt a Metára, hogy telepítse a hálózatra.
3. Ellenőrizze, hogy a Stack Exchange használja-e a nyelvet
Nézze meg a fejlesztői CDN-en a highlight-loader.js fájlt, nyissa meg kedvenc szerkesztőjében, és keresse meg a nyelvi tippeket. Például: " dart keresése " hljs.registerLanguage("dart", ...
sorból áll. Ez azt jelenti, hogy az lang-dart
elérhető nyelvtipp. " psh " vagy " powershell " nem ad eredményt, ami azt jelenti, hogy a psh-t nem támogatja a highlight.js Stack Exchange verziója.
4. Ellenőrizze, hogy a kérdés címkéin engedélyezett-e a szintaxis kiemelés
A kulisszák mögött a Stack Exchanges a kérdés címkéit használja a használt nyelv meghatározásához. Minden címke tulajdonságaiban meg van jelölve egy kiemelő nyelv, vagy nincs nyelv. Ha egynél több címke van megadva kiemelő nyelvvel, vagy ha egyik címkének sincs megadva, akkor alapértelmezett értéket használ, és lehetővé teszi a highlight.js számára, hogy melyik nyelvet használja a legjobban. a kérdésre használt nyelv kiemelése a válaszaiban is használatos.
Látogassa meg azt a “s wiki oldal. Kattintson egy címkére (például " javascript "), majd kattintson a " További információ … ", és a címkéhez jelenleg használt nyelvi tipp (ha van ilyen) a nagyon alul , a wiki gombjai alatt:
Ha a címkének nincs megadva kiemelő nyelve, amikor kellene, akkor hozza létre szolgáltatás-kérelem a webhelyenkénti metán, hogy webhelye kérje. (Csak a moderátorok változtathatják meg a címke kiemelésének nyelvét.)
Hogyan jelenthetem a hibát, vagy új nyelvet kérhetek?
Ha valóban hibát jelent maga a szintaktikai kiemelő, akkor ellenőrizze, hogy vannak-e meglévő jelentések először megnézni, hogy jelentették-e már; ha még nem történt meg, folytassa és jelentse ott. Olyan hibajavításokért és funkciókért, amelyeket a highlight.js már megvalósított , de itt nem működnek, kérjük, várjon, mert a highlight.js új verziói ütemezetten kerülnek telepítésre a webhelyeken, és a a legújabb verzió még nem került telepítésre. (Ha hosszú ideig nem került telepítésre, akkor felkérhet egy funkciókérést a Meta-ban, hogy kérje a highlight.js új verziójának telepítését.)
Ne feledje, hogy a Stack Exchange nem kezeli ezt a szintaxis kiemelőt (eltekintve annak újabb verzióinak telepítésétől), és az ezzel kapcsolatos hibajelentések vagy funkciókérések itt a Meta-ra történő közzététele nem fogja őket kijavítani vagy végrehajtani.
Mielőtt tegyen bármit, győződjön meg arról, hogy be van-e kapcsolva a megfelelő kiemelés.
Hogyan használhatom a szintaxis kiemelését?
Mindaddig, amíg az összes feltétel a fenti Miért nincs a kódom kiemelve helyesen? szakasz elégedett, a kiemelés automatikusan bekapcsol a kódblokkokban a kérdés címkéi alapján. (Lásd: 4. Ellenőrizze, hogy a A kérdésed címkéinek fentebb engedélyezve van a szintaxis kiemelés e ennek működéséhez.) A Inline kód (pl. this
) nincs kiemelve.
Lehetséges kifejezetten felülírja a bejegyzésben használt alapértelmezett kiemelő nyelvet az Ön által kiválasztott nyelvvel egy adott kódblokkban, megadva a nyelvblokkot a kódblokk fölött. Vegye figyelembe, hogy ez csak akkor támogatott, ha a kódkerítés (```
) kódformázási módot használja; a CommonMark implementációja óta a négy szóközös behúzási módszerrel végrehajtott kódblokkoknál ez már nem támogatott *:
```lang-or-tag-here code goes here ```
Használhat nyelvi kódot vagy címke nevet a nyelvi tippben a szintaxis kiemelés aktiválásához. Az alábbiakban olvashatja el a highlight.js által támogatott nyelvi kódok teljes listáját.
Például:
Here is a code block with language code (with "lang-" prefix) as a hint: ```lang-js function greet(person) { return "Hello " + person; } var user = "John Doe"; alert(greet(user)); ``` Here is a code block with tag name (no "lang-" prefix) as a hint: ```typescript var arr = [0, 1, 2]; // will highlight if typescript tag exists ```
Ha nem szeretné bármilyen szintaxis kiemeléshez használhatja a lang-none
nyelvet:
```lang-none [code here] ```
Alkalmazhat nyelvi tippet is az összes kód blokkolásához a bejegyzésében, ezért nem kell minden egyes előtt tippet adnia, ha HTML-megjegyzést ad a bejegyzés tetejéhez . A tippet ezután a bejegyzés összes kódblokkjára alkalmazzuk, beleértve azokat is, amelyek négytagú behúzást vagy HTML-t használnak <pre><code>
:
<!-- language-all: lang-or-tag-here -->
Ne feledje, hogy egy kérdésnél használva nem nem írja felül a kiemelés nyelvét a válaszaiban; ezeket alapértelmezés szerint továbbra is kiemelik a kérdés címkéi szerint.
A Stack Exchange szolgáltatásban jelenleg elérhető nyelvi kódok
Ez minden egyes azonosító teljes listája használhatja a nyelvi tippekben a szintaxis kiemeléséhez. Az egyes csoportokban található összes nyelvi tipp ugyanarra a kiemelőre mutat. Lehetséges, hogy a highlight.js által beállított egyéb nyelvű álnevek működnek, de a Stack Exchange csak a következő azonosítókat támogatja hivatalosan.
- Alapértelmezés: értelmezze a kódot, és kitalálja
lang-default
- Nincs: kifejezetten ne használjon semmilyen szintaxist, amely kiemeli a
lang-none
,lang-plaintext
,lang-text
,lang-txt
- Bash
lang-bash
,lang-sh
,lang-zsh
- C, C ++ és egyéb C-szerű
lang-c
,lang-h
,lang-cpp
,lang-hpp
,lang-c++
,lang-h++
,lang-cc
,lang-hh
,lang-cxx
,lang-hxx
,lang-c-like
- C #
lang-cs
,lang-csharp
,lang-c#
- Clojure
lang-clojure
,lang-clj
- CoffeeScript
lang-coffee
,lang-coffeescript
,lang-cson
,lang-iced
- CSS
lang-css
- Dart
lang-dart
- Erlang
lang-erl
,lang-erlang
- Go
lang-go
,lang-golang
- Haskell
lang-hs
,lang-haskell
- HTML, XML, XSL és mtsai.
lang-html
,lang-xml
,lang-xsl
,lang-xhtml
,lang-rss
,lang-atom
,lang-xjb
,lang-xsd
,lang-plist
,lang-wsf
,lang-svg
- HTTP fejlécek
lang-http
,lang-https
- Ini és TOML
lang-ini
,lang-toml
- Java
lang-java
,lang-jsp
- JavaScript
lang-js
,lang-javascript
,lang-jsx
,lang-mjs
,lang-cjs
- JSON
lang-json
- Kotlin
lang-kotlin
,lang-kt
- LaTeX, TeX
lang-latex
,lang-tex
- Kevesebb
lang-less
- Lisp
lang-lisp
- Lua
lang-lua
- Makefile
lang-makefile
,lang-mk
,lang-mak
- Jelölés
lang-markdown
,lang-md
,lang-mkdown
,lang-mkd
- MATLAB
lang-matlab
- Objektív-C
lang-objectivec
,lang-mm
,lang-objc
,lang-obj-c
- OCaml
lang-ocaml
,lang-ml
- Pascal, Delphi
lang-pascal
,lang-delphi
,lang-dpr
,lang-dfm
,lang-pas
,lang-freepascal
,lang-lazarus
,lang-lpr
,lang-lfm
- Perl
lang-pl
,lang-perl
,lang-pm
- PHP
lang-php
,lang-php3
,lang-php4
,lang-php5
,lang-php6
,lang-php7
- PHP sablon
lang-php-template
- Protokoll pufferek
lang-protobuf
- Python
lang-py
,lang-python
,lang-gyp
,lang-ipython
- R
lang-r
- Rubin
lang-rb
,lang-ruby
,lang-gemspec
,lang-podspec
,lang-thor
,lang-irb
- Rust
lang-rs
,lang-rust
- Scala
lang-scala
- rendszer
lang-scheme
- SCSS
lang-scss
- Shell
lang-shell
,lang-console
- SQL
lang-sql
- Swift
lang-swift
- TypeScript
lang-typescript
,lang-ts
- VHDL
lang-vhdl
- VB.NET
lang-vbnet
,lang-vb
- YAML
lang-yaml
,lang-yml
A bejegyzésben használt bármely nyelvazonosító, amelyet a highlight.js nem ismer fel, funkcionálisan alapértelmezés szerint lang-default
.
Tipp: Címkék
Megadhat bármely, a webhelyen létező címkét , és bármilyen nyelvi kódot fog használni, amely a címkéhez jelenleg társítva van (amely lehet akár null (nincs tipp), alapértelmezett vagy egy specifikus nyelvi kód).
Ne feledje, hogy alapértelmezés szerint az összes a címkék none
nyelvű nyelvkódként indulnak. A none
nyelvkódként megadott címkéket figyelmen kívül hagyják és visszaállítják a következőre: lang-default
.
A sima none
kulcsszót használhatja a szintaxis kiemelésének manuális megadására is, hasonlóan a lang-none
kód fent.
* A kiemelő nyelv megadásának korábbi módja továbbra is használható HTML kódblokkokhoz: HTML megjegyzés elhelyezése <!-- language: lang-or-tag-here -->
a <pre><code>
címkék előtt, és működni fog.
Ez az előbbi is A metódust a négy szóközű behúzott kódblokkoknál nem távolították el teljesen, de csak elavulták. Bár egyelőre még működni fog négy szóközű behúzott kódblokkoknál, a jövőben eltávolíthatják / eltávolíthatják.
Megjegyzés a szerkesztőknek:
Kérjük, ne adja hozzá a fenti listára, hacsak nem vagy 100% -os e létezik.
Csak azért, mert beírsz valamit, és úgy néz ki helyesen nem azt jelenti, hogy az azonosító valóban létezik a rendszerben. Ne feledje, hogy az érvénytelen azonosítók visszaállnak alapértelmezett re.
Ezenkívül számos olyan nyelv, amelyet támogatottként jeleznek a highlight.js dokumentációját valószínűleg nem támogatja a highlight.js Stack Exchange-verziója, mivel ezek lehetnek külön modulok, amelyek nem telepíthetők a Stack Exchange-en.
Ezen pontok miatt kérjük, linkeljen a Meta kérdésre, amely megerősíti egy utalás létezését a szerkesztési összefoglalóban , amikor új tippet ad a listához.
Megjegyzés a hozzászólókhoz:
A GYIK-vel kapcsolatos megjegyzések annak tisztázására vonatkoznak, amelyet esetleg nem ért a GYIK-ben, hogy javítható legyen. Kérjük, NE ne kérdezze meg, hogy a jövőben támogatnak-e bizonyos nyelveket. Ez nem egy kérdés, amelyre megválaszolhatjuk, mert a Stack Exchange nem tartja karban ezt a kiemelőt. Nyelvi támogatásért látogasson el a highlight.js oldalra.
Megjegyzések
- Nem kellene ' t itt feltüntetni a preferenciát (nem szabály) vagy nyelvkód vagy címke neve használatához (esetleg néhány minősítővel)? Például. " Inkább használja az X-et Y felett, kivéve, ha Z. " (Kissé kapcsolódó kérdés az MSO-val kapcsolatban (kommentekben) ): Mi ' s különbség a két kódformázási stílus (kódkerítések vs behúzott blokkok) között a szintaxis kiemelésével kapcsolatban ? )
- és bármilyen, a címkéhez társított nyelvi kódot fog használni Van-e bárhol hivatalos felsorolás ezekről a leképezésekről?
- 4. szakasz, " 4. Ellenőrizze, hogy a kérdés címkéinek szintaxis kiemelése engedélyezve van-e " , rendelkezik-e minden információval a @JoshGoebel
- @Josh közvetlen kérdéséhez , Nem hiszem, hogy bárhol létezne lista , amely jelenleg az összes társított nyelvű címkét tartalmazza. Nem úgy néz ki, hogy ' úgy sem, hogy ez az információ a SEDE használatával is elérhető, ' nem szerepel a címkék táblázatban.
https://github.com/highlightjs/
projektből, vagy az SE Sites saját színkészleteket használ? Megváltoztathatnánk a színt és a színeket?Language Categories
=All
ésThemes
=Stackoverflow Light
pontosan ez a téma használt az SE webhelyeken? Melyik nyelv használatos alang-default
kifejezéshez?