Copiar text de ChatGPT a Notion

Copiar text de ChatGPT a Notion

Procés

  1. Copia la resposta del ChatGPT
    1. notion image
  1. Enganxa (Ctrl+V) el contingut en la següent pàgina
  1. Prem el botó ‘Renderitzar LaTeX’ que trobaràs dins un desplegable en la mateixa pàgina.

Vídeo d’exemple (funcionament)

De què serveix aquesta integració?

Tipus de blocs que pot generar el ChatGPT

📌
Conclusió: es copien bé tots els blocs excepte les equation blocks i les in-line equations. És aquestes les que renderitzem mitjançant la nostra integració.
Resposta ChatGPT
notion image
Contingut copiat i enganxat a Notion

Example of Heading 3

This is a normal paragraph, providing a clear and concise introduction to the content below.
This paragraph includes bold text and italic text to illustrate how annotations can be used to emphasize key points. Using bold for emphasis and italics for subtle highlights can enhance readability.

Example of an Equation Block

\[ a^2 + b^2 = c^2 \]
The Pythagorean theorem, represented by \( a^2 + b^2 = c^2 \), is a fundamental principle in geometry, often used to determine the length of the hypotenuse in a right triangle.
  • Apples
  • Bananas
  • Cherries
  1. Preparation
  1. Execution
  1. Review
Here’s a quick code snippet: print("Hello, world!")
def add_numbers(a, b): return a + b result = add_numbers(5, 3) print(result)
To conclude, consider this insightful quote:
“The greatest glory in living lies not in never falling, but in rising every time we fall.” — Nelson Mandela

Què fa la nostra integració?

Tenim en aquesta pàgina activada una integració que ens permet de manera externa poder llegir-ne el contingut, modificar-lo i si volem o afegir-ne de nou.
Això ho aconseguim amb un programa anomenat Make que ens permet fer crides mitjançant la API Oficial de Notion.
El que fem és fer una crida (API Call) que ens dona el contingut de tota la pàgina en un format anomenat JSON. Aleshores processem aquest contingut mitjançant diferents ‘mòduls’ interns de Make, i avaluem si un bloc de text (que potser conté els caràcters \( i \) o \[ i \]) hauria de ser text normal, o una in-line equation o una block equation.
Un cop avaluat, generem un nou fitxer JSON amb els blocs estructurats correctament. I el passem de nou en una API Call per tal de generar o actualitzar el contingut.

Què fa el botó incrustat?

La nostra automatització de Make (escenari) s’executa, en principi, únicament quan nosaltres premem el botó de “Run” dins de Make.
Això ho podem canviar mitjançant el que s’anomena un Webhook. Un WebHook vindria a ser una pàgina web (URL) que al ser oberta genera un HTTP Request, en paraules senzilles el que fa activar un procés. En el nostre cas el procés activat és el d’iniciar (executar) l’escenari de Make.
El nostre botó “Renderitzar LaTeX” (que forma part d’una pàgina molt senzilla publicada a github pages i incrustada en el Notion) el que fa és obrir (però sense anar-hi) aquesta URL corresponent al Webhook. De manera que al prémer el botó s’activa l’execució del nostre escenari.

Vull entendre com funciona a nivell tècnic

📍
Per la gent més curiosa, aquí un tutorial tècnic en què s’explica pas per pas com s’ha fet aquesta integració.

Has trobat algun error?

Fes-ho saber deixant un comentari al final de la pàgina.

Explica el teu error aquí (i comenta’l per tal que s’enviï la notificació).
 

Pendent

  • Botó maco amb CSS i títol “Renderitzar LaTeX”
    • Fer que no es pugui prémer dos vegades
  • Afegir per headings 2 i headings 1
  • Que a baix del botó posi “Fet!” quan rebi la resposta del WebHook. I si en 20 segons no ha rebut res pos-hi “hi ha hagut un error en la automatització 1, provant la automatització 2”.
    • I provi un altre webhook (integració idèntica des d’un altre usuari de Make)
    • I si aquesta també fallés digui “Ups! Hi ha hagut un error desconegut”.
    • I fer que el botó, un cop clicat no es pugui tornar a clicar (o clicar-lo no faci res) fins que la funció “Fire()” s’acabi d’executar. Algo rollo un cop clicat al inici de la funció fer “boto_actiu=false” i al final de la funció fer “boto_actiu=true”.
  • O sinó, més senzill. Tenir un array amb 4 WebHooks (4 escenaris idèntics de Make). I que al premer el boto, la funció el primer que faci sigui
    • if (num_webhook=4; num_webhook=1 ; num_webook += 1 );
    • I després faci link = webhooks_array[num_webhook];
    • I fetch(link);
    • (Així es va alternant). I lo de posar missatges ja potser més endavant ns.
Altres
Min 2:48
YouTubeYouTube[Tutorial] - How to use the Notion API with Postman for Beginners
YouTubeYouTubeCreate Your First Notion Integration for the API
  1. Inicialment fer-lo com a “Watch page content”. Tutorial.
  1. Posteriorment fer-lo com a webhook a partir de slack i les Notion internal automations. Tutorial.
  1. Finalment, fer-ho com un botó (embed) d’una pàgina de githubpages que dispara la API call.
Com fer-ho
notion image
Relacionat:
How to Create Notion Database Items and Pages with Make
Altres
Relacionat:
Com es copien les coses a Notion:
El que es podria fer
  1. Aconseguir que et vagi el comandament pip
  1. Aprendre a utilitzar el repositori següent
    1. GitHubGitHubGitHub - 1kc2/md2notion: :memo: Preserve math formatting when importing markdown files to Notion (using md2notion)
  1. Poder exportar i importar contingut (text i equacions) sense problemes
  1. Fer un script que canviï la resposta de ChatGPT a markdown
  1. Importar mitjançant el repositori
  1. Però algú extern no podria —> no ens serveix.
Tutorial:
YouTubeYouTubeHow to create & Update Notion Databases with Make.com? (Integromat)
Un altre tutorial (min 4):
YouTubeYouTubeAutomatically Create Notion Pages and Database Items with Make (Integromat)
Relacionat (API no oficial):
YouTubeYouTubeUsing Notion as a CMS for Complex Websites
  1. Controlar errors! Per exemple que dispari un webhooks que activa un altre escenari que afageix un callout vermell amb el missatge d’error.
Make CommunityMake CommunityTrying to append a page content - [400] body failed validation: body.children[1].paragraph.rich_text[0].text.content should be defined, instead was `undefined`
  • OJUT idea: i algo així:
    • notion image
      La pregunta seria, cal (en cas que no hi hagi children) respondre amb 200? Crec que potser no. Provem-ho però potser si responem aquí, després quan responguem a lo del children no ens farà cas perquè ja haurà rebut resposta.
  • Mirar si el següent té info útils