Executando verificação de segurança...
19

Novas melhorias: 3 ajustes (incluindo novo Analytics) 🎉

Fala turma! Faz 2 semanas desde a última publicação de melhorias e 3 novas melhorias foram realizadas 😍

Atualização do Next.js 13, Primer, React e outras dependências

Após uma saga de meses, finalmente conseguimos fazer a atualização do Design System oficial do GitHub chamado Primer e que usamos aqui no TabNews, junto com a atualização tanto para o Next.js 13, quanto React 18 e outras dependências como o ByteMD (editor de Markdown), Recharts (usado na página /status) e ESLint.

Grande parte destas bibliotecas estavam incompatíveis entre si nas suas últimas versões, mas agora as peças conseguiram se encaixar e novamente o TabNews está rodando com tudo atualizado!

Atualização de dependências

Esta implementação foi realizada por aprendendofelipe e as informações podem ser conferidas por essa Issue* 🎉

Habilitação do Analytics oficial da Vercel

Junto da atualização do Next.js 13, habilitamos o Analytics oficial da Vercel chamado de Audiences, que é Privacy-friendly, ou seja, não há nenhum scripts de terceiros ou rastreamento por cookies. Isto foi possível através da aquisição da Splitbee pela Vercel.

Habilitamos esse recurso faz 3 dias e ao final de um mês vamos compartilhar os resultados, mas por enquanto segue uma prévia desse final de semana:

Vercel Analytics

Esta implementação também foi realizada por aprendendofelipe e as informações podem ser conferidas por esse PR* 🎉

Ajuste no endpoint /api/v1/contents/[username]

Este ajuste faz parte de outro ajuste para voltar a mostrar uma mensagem importante caso o usuário esteja criando uma publicação pela primeira vez.

Então primeiro foi ajustado um componente no Frontend e agora foi ajustado no Backend para fazer o endpoint /api/v1/contents/[username] responder corretamente com as publicações apenas do [username] especificado (quando a estratégia utilizada é a relevant), por exemplo:

https://www.tabnews.com.br/api/v1/contents/filipedeschamps

Que por padrão assume:

  • strategy igual a relevant
  • per_page igual a 30
  • page igual a 1

https://www.tabnews.com.br/api/v1/contents/filipedeschamps?strategy=relevant&per_page=30&page=1

Esta implementação também foi realizada por aprendendofelipe e as informações podem ser conferidas por esse PR* 🎉

Conclusão

O aprendendofelipe está mandando muito muito muito muito bem no projeto e se você não notou, todas as contribuições dessa semana foram dele 😍 em paralelo, há outras contribuições de outras pessoas que estão avançando e também vão melhorar a experiência aqui no TabNews 🤝 Esta turma é sinceramente muito sen-sa-ci-o-naaaaal!!!!!

Tenham todos uma ótima semana! 😍 💪


⚠️ O repositório Open Source do TabNews ainda está em Modo Privado. Caso queira receber um convite para participar, leia esta publicação.

Carregando publicação patrocinada...
3
4
2

Massa demais! Aproveitando, não sei se é o local correto, mas segue uma sugestão: abrir os links das publicações em uma nova aba (atributo blank). Tenho navegado por vários tópicos interessantes e facilita bastante seguir a leitura conforme os links são abertos sem me tirar da página que estou, sem contar no benefício para SEO, que permite melhorar o engajamento, reduzir a taxa de rejeição e aumentar o tempo médio no domínio.

1

Muito obrigado pela sugestão, e ela é bastante popular 🤝 por enquanto não fazemos isso propositalmente para dar controle ao usuário de escolher abrir ou não numa mesma aba.

1
1

Eu sei que vc não quis dizer nesse jeito mas por enquanto a gambiarra pra fazer textos coloridos é com bloco de código, variando a linguagem.

Não tem nenhum controle, mas foi só algo que veio na minha mente quando vc mencionou CSS.


TESTE YAML

Nem é útil com frases normais, o mais útil que encontrei é YAML pq tem uma sintaxe limpa e vira tipo uma lista:

yaml

- numero: 1.0
- numeroComoString: "1.0"
- INTRO:
    nome: DBL
    job: Developer
    skills:
      - python
      - C
- Ipsum:
    - Lorem
    - Blah
    - Blah : "strings tem destaque enquanto escreve, mas ao visualizar some"
    - foo2: "{{ mas isso funciona aparentemente pra dar destaque }}\\backslashes\\are\\also\\special\\characters"
- Teste1: {name: DBL, job: Developer, skill: randomStuff}
- Teste2: ['Apple', 'Orange', 'Strawberry', 'Mango']
- TesteMultiline:
    - m1: |
            exactly as you see
            will appear these three
            lines of poetry
    - m2: >
            this is really a
            single line of text
            despite appearances
    

TESTES POR LINGUAGEM

Provavelmente não tem utilidade nenhuma, mas fiz uns testes abaixo:

Python

def functionTeste():
    print("Hello World")

C

def functionTeste():
    print("Hello World")

CSS

def functionTeste():
    print("Hello World")

JavaScript

def functionTeste():
    print("Hello World")

Ruby

def functionTeste():
    print("Hello World")

R

def functionTeste():
    print("Hello World")

Rust

def functionTeste():
    print("Hello World")

Go

def functionTeste():
    print("Hello World")

C++

def functionTeste():
    print("Hello World")

C#

def functionTeste():
    print("Hello World")

Java

def functionTeste():
    print("Hello World")

OBSERVAÇÕES

Claro que como não escrevi código específico pra linguagem, ele nem sempre colore tanto.
- Só fiz isso como comparativo, e usei python como base por ter sintaxe mais enxuta.

Pra um texto normal tem reconhece geralmente


TESTES MD

Curioso que posso usar o próprio Markdown kkkkkk

Md

# Heading

**negrito**
*itálico*
~~riscado~~

---

Listas

- Item
- Outro
    - Subitem

1. OutraLista
2. NumeradaAgora
    1. Com Subtitens tbm

- [ ] Tarefa
- [x] Tarefa

---

    ```python
    def functionTeste():
        print("Hello World")
    ```
    
Droga não consigo fazer inception de blocos kkkkk (aí é pedir demais)

---
Teste Final


Enfim, só estou brincando com a formatação do código

Não esqueça do café c[_]
DBL

1

Douglas, ótima pergunta! Eu não saberia responder. Na verdade, qualquer coisa que você enviar no body a API vai aceitar, não fazemos filtro ou escaping do que é enviado (na verdade, fazemos só para alguns caracteres especiais que geram um erro no Postgres). Então fica sob a responsabilidade do client fazer o escaping (e interpretação do Markdown), que no caso hoje usamos o ByteMD.

1