Bibliotecas

Highlightjs

O Highlight.js é uma biblioteca JavaScript que realça trechos de código em páginas web, suportando mais de 180 linguagens de programação. Cada linguagem possui uma classe CSS específica que deve ser atribuída ao elemento <code> para aplicar a formatação correta.

Abaixo, apresento uma tabela com algumas das linguagens suportadas e suas respectivas classes:

Linguagem Classe CSS
1C language-1c
ABNF language-abnf
Access logs language-accesslog
Ada language-ada
ARM Assembly language-armasm
AVR Assembly language-avrasm
ActionScript language-actionscript
Alan IF language-alan
AngelScript language-angelscript
Apache language-apache
AppleScript language-applescript
Arcade language-arcade
Arduino language-arduino
AsciiDoc language-asciidoc
AspectJ language-aspectj
AutoHotkey language-autohotkey
AutoIt language-autoit
Awk language-awk
Bash language-bash
Basic language-basic
Batch file language-batch
Beef language-beef
BNF language-bnf
Brainfuck language-brainfuck
C language-c
C# language-csharp
C++ language-cpp
C/AL language-cal
Cache Object Script language-cos
CMake language-cmake
Coq language-coq
CSS language-css
D language-d
Dart language-dart
Delphi language-delphi
Diff language-diff
Django language-django
Dockerfile language-dockerfile
DOS .bat language-dos
Elixir language-elixir
Elm language-elm
Erlang language-erlang
Excel language-excel
F# language-fsharp
Fortran language-fortran
G-code language-gcode
Gams language-gams
GAUSS language-gauss
Gherkin language-gherkin
GLSL language-glsl
Go language-go
GraphQL language-graphql
Groovy language-groovy
Haskell language-haskell
Haxe language-haxe
HCL language-hcl
HTML, XML language-xml
HTTP language-http
Hy language-hy
Inform7 language-inform7
Ini language-ini
Inno Setup language-innosetup
Java language-java
JavaScript language-javascript
JSON language-json
Julia language-julia
Kotlin language-kotlin
LaTeX language-latex
Less language-less
Lisp language-lisp
LiveCode language-livecodeserver
Lua language-lua
Makefile language-makefile
Markdown language-markdown
Mathematica language-mathematica
MATLAB language-matlab
Maxima language-maxima
Maya Embedded Language language-mel
Mercury language-mercury
MIPS Assembly language-mipsasm
Mizar language-mizar
Mojolicious language-mojo
Monkey language-monkey
N1QL language-n1ql
Nginx language-nginx
Nim language-nim
Nix language-nix
NSIS language-nsis
Objective-C language-objectivec
OCaml language-ocaml
OpenSCAD language-openscad
Oracle Rules Language language-oracle
Pascal language-pascal
Perl language-perl
PHP language-php
Plaintext language-plaintext
Pony language-pony
PostgreSQL SQL dialect language-pgsql
PowerShell language-powershell
Processing language-processing
Prolog language-prolog
Properties language-properties
Protocol Buffers language-protobuf
Puppet language-puppet
Python language-python
Q language-q
QML language-qml
R language-r
ReasonML language-reasonml
Rib language-rib
Roboconf language-roboconf
Ruby language-ruby
Rust language-rust
SAS language-sas
Scala language-scala
Scheme language-scheme
Scilab language-scilab
SCSS language-scss
Shell Session language-shell
Smali language-smali

Concurrently

Biblioteca para rodar processos em paralelo.

Race Condition (Condição de Corrida): Esse erro ocorre quando dois ou mais processos ou threads depende de outro, mas o processo dependente é iniciado antes que o processo necessário esteja pronto, isso pode levar a um estado inconsistente ou erro. Para isso é necessário o uso de um Orquestrador.

Orquetrador é uma ferramenta ou sistema que gerencia e coordena a execução de múltiplos processos ou serviços, garantindo que eles sejam executados na ordem correta, atendendo a suas dependências e garantindo que os recursos necessários estejam disponíveis para que cada parte do sistema funcione corretamente.

Instalar Concurrently

bash
$ npm install --save-dev concurrently@8.2.2
$ echo $? # Para testar o código de saída do processo num terminal linux após encerrar o processo
package_usar_processos_paralelos.json
"scripts": {
  "test": "concurrently -n next,jest --hide next -k --success command-jest 'next dev' 'jest --runInBand'",
}

A opção --name(-n) é para nomear o nome dos processos em paralelos, para acompanhar os logs gerados por ele. E a opção --hide serve para ocutar as logs de um processo. --kill-others(-k) serve para encerrar os processos filhos (que estão em paralelo) antes de encerrar o proprio concurrently. --success(-s) command-jest (comando que vai definir sua saída com base na saída dos processos filhos, nesse caso se o processo do jest for encerrado com sucesso (0) o concurrently também)