Hvilke Twig-variabler findes der i Nonli?

Smart Message-skabeloner skrives i Twig 3. Denne side viser alle de variabler, funktioner og filtre som Nonli understøtter i den kontekst, med type, hvornår de kan mangle, og et testet eksempel. Hvis du vil oprette en skabelon trin for trin, så start med Sådan laver du en Smart Message.

1. Hvor denne kontekst gælder#

Den samme kontekst findes to steder:

  • Smart Message-skabeloner, som bruges af robotter, af pæreknappen i opslagseditoren og af knappen til første kommentar. De kan udfylde meddelelsen, titlen, beskrivelsen, kommentaren, videotitlen, alt-teksten og TikTok-ankertitlen.
  • Dynamiske værdier i Smart Image når en tekst eller farve i Smart Image bruger en Smart Message-skabelon som kilde. I så fald er variablen context lig med 'smart_image'. Se Sådan bruger du dynamiske farver i Smart Image.

Dynamiske URL-parametre og den dynamiske paywall bruger også Twig, men med en meget mindre kontekst: en begrænset post (source, social_account, post_type, author, user_id, breaking_news, short_id), referer, funktionen isComment() samt tællere og percentiler. organic, aliasserne på topniveau og Smart Message-funktionerne nedenfor findes ikke der.

2. Regler for navne og typer#

  • Brug helst fulde stier. Skriv organic.title eller post.social_account.type i stedet for et alias på topniveau. Aliasserne er stadig understøttet af hensyn til eksisterende skabeloner.
  • Navnene skrives i snake_case og følger navnene på de lagrede felter: canonical_url, published_at, open_graph.
  • Vær opmærksom på ental og flertal. Stierne er organic.category, organic.tag, organic.author; aliasserne er tags og authors. Et forkert navn som categories, organic.categories, tag eller author giver ikke nogen fejl: det giver en tom værdi.
  • Typer. En streng er tekst. En liste er en række værdier: test den med in, læs den med |first eller |join(', '), og udskriv den aldrig direkte. Et objekt samler andre stier. Derefter kommer tal, booleske værdier og datoer. Datoer er ISO 8601-strenge i UTC som 2026-10-18T07:30:00.000Z. Formatér dem med |date.
  • Manglende værdier. En værdi findes kun når kilden leverer den. Det afhænger af opslagets oprindelse (artikel, manuelt opslag, opslag uden link), det sociale netværk, opslagstypen og de metadata som scraperen fandt på siden. En manglende organic-sti bliver tom; en tom liste behandles som manglende.

Brug ?? til at erstatte en manglende værdi eller null, og ?: eller |default() til også at erstatte en tom streng:

UdtrykVærdi manglerVærdien ''Værdien 'A'
{{ x ?? 'B' }}B(tom)A
{{ x ?: 'B' }}BBA
{{ x|default('B') }}BBA

Efter et filter skal du bruge ?: eller |default(), aldrig ??. {{ x|upper ?? 'B' }} er en syntaksfejl, og skabelonen afvises når du gemmer den.

3. Variabler på topniveau#

Disse variabler er altid defineret i en Smart Message.

StiTypeTilgængelighedBeskrivelseEksempel
social_networkstrengAltidDestinationskontoens netværk; facebook når det er ukendt.instagram
post_typestrengAltidOpslagstype; link når den er ukendt.photo
empty_messagestrengAltidEn tom streng, så der bevidst ikke returneres noget.''
shortlink_prefixstrengAltidBrandets tekst foran et kort link.➡️
postobjektAltidDet opslag der oprettes eller redigeres (se post.*).
organicobjektAltidKildeartiklen (se organic.*); en tom liste [] når opslaget ikke har nogen artikel.
contextstrengAltidDet felt der genereres: message, title, description, comment, videoTitle, altText, tikTokAnchorTitle eller smart_image når Smart Image renderer skabelonen.message

3.1. Ældre aliasser#

Når opslaget kommer fra en artikel, kopierer Nonli også nogle artikelfelter til topniveauet. Disse aliasser er definerede (muligvis som null) så snart der findes en artikel, og udefinerede når opslaget ikke har nogen. Hvert alias har en foretrukken fuld sti.

AliasForetrukken fuld stiTypeIndhold
titleorganic.titlestrengArtikeltitel valgt af Nonli
descriptionorganic.descriptionstrengArtikelbeskrivelse valgt af Nonli
title1organic.html.h1strengFørste H1-overskrift på siden
title2organic.html.h2strengFørste H2-overskrift på siden
head_titleorganic.head.titlestrengHTML-taggen title, ofte en længere SEO-titel
meta_descriptionorganic.meta.descriptionstrengSidens egen metabeskrivelse
og_titleorganic.meta.open_graph.titlestrengOpen Graph-titel
og_descriptionorganic.meta.open_graph.descriptionstrengOpen Graph-beskrivelse
twitter_titleorganic.meta.twitter.titlestrengTwitter Card-titel
twitter_descriptionorganic.meta.twitter.descriptionstrengTwitter Card-beskrivelse
meta_custom_facebook, meta_custom_twitter, meta_custom_instagram, meta_custom_linkedin, meta_custom_tiktok, meta_custom_pinterestorganic.meta.custom.facebook (og så videre)strengTilpassede metadata pr. netværk, udtrukket med en webstedsspecifik regel
meta_custom_publisherorganic.meta.custom.publisherstrengTilpasset udgiverfelt, udtrukket med en webstedsspecifik regel, for eksempel første afsnit i brødteksten
meta_custom_rss_titleorganic.meta.custom.rss.titlestrengTitel fra RSS-elementet
meta_custom_rss_descriptionorganic.meta.custom.rss.descriptionstrengBeskrivelse fra RSS-elementet
authorsorganic.authorlisteArtiklens forfattere
tagsorganic.taglisteArtiklens tags

På en rigtig artikel indeholder title og title1 ofte den samme rubrik, head_title indeholder den længere SEO-titel, og meta_description begynder ofte med manchetten. Alle kan være tomme, så planlæg altid en reserveværdi.

Valgene »Meta custom …« i editoren og i robotkilderne svarer til disse meta_custom_*-aliasser. De udfyldes kun på websteder hvor Nonli har konfigureret en særlig udtræksregel. En artikel fra et websted uden for din virksomhed viser kun sine offentlige felter, så organic.counter.view mangler for den.

4. [object Object],: kildeartiklen#

organic findes når opslaget kommer fra en artikel (robot, URL indsat i editoren, SDK, RSS). Et manuelt opslag eller et opslag uden link har ingen artikel: organic er så en tom liste, og alle organic.*-stier er tomme.

StiTypeTilgængelighedBeskrivelseEksempel
organic.urlstrengAlle artiklerArtiklens URLhttps://www.example.com/politics/budget
organic.canonical_urlstrengNår angivetKanonisk URLhttps://www.example.com/politics/budget
organic.typestrengAlle artiklerRegistreret indholdstypearticle
organic.languagestrengNår registreretSprogkodefr
organic.titlestrengFlertallet af artiklerTitel valgt af NonliBudget 2027: what changes
organic.descriptionstrengNår fundetBeskrivelse valgt af NonliThe government presents its budget.
organic.html.h1 / organic.html.h2strengNår til stedeFørste H1-/H2-overskriftKey measures
organic.head.titlestrengNår til stedeHTML-taggen titleBudget 2027 - Example News
organic.meta.descriptionstrengNår til stedeEgen metabeskrivelseThe government presents its budget.
organic.meta.open_graph.title / .descriptionstrengNår til stedeOpen Graph-titel/-beskrivelseBudget 2027
organic.meta.open_graph.article.sectionstrengNår til stedeOpen Graph article:sectionPolitics
organic.meta.twitter.title / .descriptionstrengNår til stedeTwitter Card-titel/-beskrivelseBudget 2027
organic.meta.custom.*strengWebstedsspecifik regelTilpassede felter som står i aliastabellen
organic.categorylisteNår fundetNormaliserede kategorier, inklusive JSON-LD articleSection['politics', 'economy']
organic.taglisteNår fundetArtiklens tags['budget', 'taxes']
organic.authorlisteNår fundetArtiklens forfattere['Camille Martin']
organic.imagelisteNår fundetBilled-URL'er fundet på siden['https://…/budget.jpg']
organic.image_altstrengNår fundetAlternativ tekst til hovedbilledetThe National Assembly chamber
organic.published_atdatoNår fundetPubliceringsdato (UTC)2026-10-18T07:30:00.000Z
organic.modified_atdatoNår fundetDato for seneste ændring (UTC)2026-10-18T09:00:00.000Z
organic.counter.viewtalSe tællereArtikelvisninger målt af Nonli1520

4.1. Kategorier og ,[object Object]#

Nonli gemmer JSON-LD-værdien articleSection og sidens øvrige kategorisignaler i organic.category. Det er en liste, ikke en tekst, og der findes ingen variabel categories. Værdierne er normaliserede: små bogstaver, accenter fjernet og tegnsætning omdannet til mellemrum. For eksempel bliver Politique & Société, Économie og Sports > Rugby til politique societe, economie og sports rugby. Sammenlign altid med værdier du faktisk har set på dine egne artikler.

twig
1{%- set categories = organic.category ?? [] -%}
2{%- if 'politique' in categories -%}
3Politics
4{%- endif -%}

Første kategori eller ingenting: {{ organic.category|default([])|first|default('') }}

Alle kategorier: {{ organic.category|default([])|join(', ') }}

Den rå Open Graph-sektion, som ikke er normaliseret, er stadig tilgængelig som {{ organic.meta.open_graph.article.section ?? '' }}.

5. [object Object],: opslaget#

post beskriver det opslag der oprettes eller redigeres. Felterne udfyldes gradvist: et felt der er ved at blive genereret, er stadig tomt mens dets egen skabelon renderes.

StiTypeTilgængelighedBeskrivelseEksempel
post.post_typestrengAltidOpslagstypelink
post.messagestrengNår skrevetAktuel meddelelseThree ways to save energy.
post.titlestrengNår skrevetAktuel titelBudget 2027
post.descriptionstrengNår skrevetAktuel beskrivelseWhat changes for households.
post.authorstrengNår kendtForfatter til opslagets indhold (én tekst, ikke en liste)Camille Martin
post.taglisteNår kendtOpslagets tags['budget']
post.languagestrengNår kendtSprogkodefr
post.target_urlstrengLinkopslagDestinations-URLhttps://www.example.com/politics/budget
post.short_idstrengNår forkortetIdentifikator for det korte linkaB3xY
post.social_account.typestrengAltidDestinationsnetværklinkedin
post.social_account.namestrengAltidKontonavnExample News
post.social_account.slugstrengAltidKontoens slugexample-news
post.social_account.external_idstrengAltidKontoens identifikator på netværket1000000001
post.source.typestrengNår kendtOpslagets oprindelse (robot, manuel og så videre)bot
post.source.bot_titlestrengRobotopslagNavnet på den robot der oprettede opslagetPolitics bot
post.source.organic_urlstrengArtikelopslagURL til kildeartiklenhttps://www.example.com/politics/budget
post.breaking_news.activebooleskAltidBreaking news-tilstandfalse
post.schedule.start_datedatoPlanlagte opslagPlanlagt publiceringsdato (UTC)2026-10-19T06:00:00.000Z
post.published_atdatoEfter publiceringPubliceringsdato (UTC)2026-10-19T06:00:04.000Z
post.comment.messagestrengNår skrevetTekst i første kommentarRead more: [SHORTLINK]
post.counter.*talSe tællereOpslagets performance42

Interne identifikatorer og tekniske felter (id'er for bruger, virksomhed og brand, kontoens e-mail, webhook-URL, statusser, fejlspor, rå tællere) er bevidst udeladt: de er ikke en stabil offentlig grænseflade og må ikke optræde i publiceret tekst. post.user_id er kun dokumenteret til URL-parametre.

6. Tællere og percentiler#

En tæller indlæses kun når skabelonen nævner den udtrykkeligt, for eksempel post.counter.click. Den mangler når nøgletallet ikke findes endnu, hvilket altid er tilfældet for et opslag der ikke er publiceret. Skriv altid en reserveværdi: {{ post.counter.click ?? 0 }}.

StiTypeBeskrivelse
post.counter.clicktalKlik
post.counter.engagementtalEngagement
post.counter.reachtalRækkevidde
post.counter.videoViewstalVideovisninger
post.counter.ctrtalKlikrate
post.counter.overperformingtalScore for overperformance
post.counter.monetizationtalIndtjening fra monetisering af indhold
organic.counter.viewtalArtikelvisninger (kun når opslaget har en artikel)

En percentilvariabel sammenligner et opslag med de opslag som den samme konto har publiceret i en periode, breaking news undtaget. Dens navn er percentile + percentil (1 eller 2 cifre) + nøgletal + varighed (1 eller 2 cifre) + enhed:

  • nøgletal: Click, Engagement, Reach, VideoViews, Ctr, Overperforming, Monetization;
  • enheder: h time, d dag, w uge, m måned, y år.

percentile50Click1d er medianen af klik over 1 dag; percentile90Engagement7d er 90. percentil for engagement over 7 dage. Værdien er null uden data og caches i 30 minutter.

twig
1{%- if (post.counter.engagement ?? 0) > (percentile50Engagement7d ?? 0) -%}TOP{%- else -%}NORMAL{%- endif -%}

7. Funktioner#

FunktionReturnererBeskrivelse
hasLink()boolesktrue når opslaget indeholder et link. Tjek det før du skriver [SHORTLINK].
hasFirstCommentShortlink()boolesktrue når den første kommentar allerede indeholder [SHORTLINK].
canPublishPostWithoutSpam()boolesktrue når kontoens antispamregler tillader endnu et linkopslag nu.
canPublishCommentWithoutSpam()booleskSamme kontrol for en kommentar med et link.
shouldAddComment(metric)booleskAnvender den konfigurerede stikprøveregel for kommentarer; det valgfrie nøgletal angiver den tæller der bruges. Resultatet kan variere.
aiGenerated(source, min, target, max, ending, justCrop)strengOpsummerer source eller beskærer den ved en ordgrænse når justCrop er true.
gpt(prompt, model), claude(…), gemini(…), mistral(…)strengGenererer tekst med brandets adgangsoplysninger til udbyderen. Se AI-generering af meddelelser.
airtable(…)strengLæser en værdi fra en tilsluttet Airtable-base. Den returnerer kun tekst.

aiGenerated() slår kun navne på topniveau op når de angives som tekst. Angiv 'description' eller selve værdien (organic.title), aldrig teksten 'organic.title', som returneres bogstaveligt. Et navn der ikke findes, returneres også bogstaveligt: på et opslag uden artikel returnerer aiGenerated('description', …) ordet description. Beskyt det med en betingelse:

twig
1{%- if organic -%}
2{{- aiGenerated('description', null, null, 40, '…', true) -}}
3{%- endif -%}

8. Filtre#

Twigs standardfiltre og -operatorer (default, first, join, length, trim, replace, date, map, in, ??, ?:, ~) er beskrevet i Twig-dokumentationen. Nonli tilføjer eller erstatter følgende filtre. Alle resultater nedenfor kommer fra Nonlis renderer.

FilterEffektEksempelResultat
upperStore bogstaver, accenter bevares'élan VITAL'|upperÉLAN VITAL
lowerSmå bogstaver'élan VITAL'|lowerélan vital
capitalizeFørste bogstav stort, resten uændret'élan VITAL'|capitalizeÉlan VITAL
slugifyURL-slug'Budget 2027 : ménages'|slugifybudget-2027-menages
camelOrd sat sammen, hvert med stort begyndelsesbogstav'budget des ménages'|camelBudgetDesMénages
cleanSamler og trimmer mellemrum og fjerner mellemrummene omkring en bindestreg' Paris - Lyon '|cleanParis-Lyon
ucPhraseStort begyndelsesbogstav i hvert ord, korte ord beholder små bogstaver'le budget des ménages'|ucPhraseLe Budget des Ménages
encodeURL-koder, men bevarer reserverede tegn som &, =, /, ?, #'a b&c'|encodea+b&c
extractMatch(regex)Første indfangningsgruppe eller null'Price: 10 €'|extractMatch('/([[:digit:]]+)/u')10
pregReplace(regex, replacement)Erstatning med regulært udtryk'Budget 2027'|pregReplace('/[[:digit:]]+/', 'N')Budget N
cleanTextTypografisk oprydning: trimmer og tilføjer franske hårde mellemrum'Lire aussi : le budget. '|cleanTextLire aussi : le budget. (hårdt mellemrum før kolonnet)

Regler der forhindrer renderingsfejl:

  • extractMatch og pregReplace fejler når værdien er null. Tilføj |default('') før dem: {{ meta_custom_publisher|default('')|extractMatch('/^(.+?[.!?…])(?=[[:space:]]|$)/u') }}.
  • encode beskytter ikke &, = eller #. Brug det ikke til at bygge en parameter af en værdi der kan indeholde dem.
  • Brug helst POSIX-klasser som [[:digit:]], [[:space:]] og [[:alpha:]] frem for sekvenser med omvendt skråstreg: de overlever kopiering og indsættelse. Kopiér skabeloner fra en kodeblok, aldrig fra en gengivet linje i en chat eller e-mail, som kan fjerne omvendte skråstreger.

9. Testede opskrifter#

Alle opskrifterne nedenfor er renderet med Nonlis Twig-motor på testartikler med komplette, delvise og tomme data.

Rubrik (H1 eller titel) efterfulgt af metabeskrivelsen, med et kort link kun hvor der er brug for det. På et linkopslag på Facebook returnerer den rubrikken og beskrivelsen; på et foto på Facebook tilføjer den ➡️ [SHORTLINK]. På Instagram tilføjer den aldrig et link; uden en artikel returnerer den en tom tekst.

twig
1{%- set titre = title1 ?: title -%}
2{%- set desc = meta_description ?: description -%}
3{{- titre -}}
4{%- if desc -%}{{- '\n\n' ~ desc -}}{%- endif -%}
5{%- if post_type != 'link' and social_network not in ['instagram', 'tiktok', 'pinterest'] and not hasFirstCommentShortlink() and hasLink() -%}
6{{- '\n\n' ~ shortlink_prefix -}}[SHORTLINK]
7{%- endif -%}

Første sætning i beskrivelsen, derefter beskrivelsen, derefter titlen.

twig
1{%- set source = meta_description ?: description ?: '' -%}
2{{- source|extractMatch('/^(.+?[.!?…])(?=[[:space:]]|$)/u') ?: source ?: title -}}

Første sætning i det tilpassede udgiverfelt, med billedets alt-tekst og derefter titlen som reserve.

twig
1{{- meta_custom_publisher|default('')|extractMatch('/^(.+?[.!?…])(?=[[:space:]]|$)/u') ?: organic.image_alt|default('') ?: title -}}

Tekst efter netværk og opslagstype.

twig
1{%- if social_network == 'instagram' -%}
2{{- title -}}
3{%- elseif post_type == 'link' -%}
4{{- description ?: title -}}
5{%- else -%}
6{{- title -}}
7{%- endif -%}

Smart Image-farve efter kategori. Returnerer #E50032 for politik, #16A34A for sport og ellers #6F819D.

twig
1{%- set categories = organic.category ?? [] -%}
2{%- if 'politique' in categories -%}#E50032
3{%- elseif 'sport' in categories -%}#16A34A
4{%- else -%}#6F819D
5{%- endif -%}

Sporingsværdier fra destinationskontoen.

twig
1utm_source={{ post.social_account.type|default('social') }}&utm_campaign={{ post.social_account.slug|default('')|encode }}

Publiceringsdato i redaktionens tidszone. 2026-10-18T07:30:00.000Z bliver til 18/10/2026 09:30. Uden en publiceringsdato ville date udskrive den aktuelle dato, så betingelsen lader i stedet teksten være tom.

twig
1{%- if organic.published_at|default(null) -%}
2{{- organic.published_at|date('d/m/Y H:i', 'Europe/Paris') -}}
3{%- endif -%}

Hashtags fra tags. ['budget', 'impots'] bliver til #Budget #Impots.

twig
1{{ tags|default([])|map(t => '#' ~ t|camel)|join(' ') }}

Hold korte ord og tal sammen med det næste ord (til Smart Image-titler, som aldrig laver linjeskift ved et hårdt mellemrum). La finale se jouera à guichets fermés holder La, se og à sammen med det efterfølgende ord, og 16 septembre eller 3 000 euros bliver stående sammen. Ændringen gælder kun for nyligt genererede billeder.

twig
1{%- set titre = organic.title ?? title -%}
2{{- titre|pregReplace("/(?<=^|[[:space:]])([[:alpha:]]{1,2}|[[:digit:]]+)[[:space:]]+/u", "$1\xC2\xA0") -}}

Twig omdanner \xC2\xA0 til et hårdt mellemrum; $1 bevarer det korte ord eller tal der blev fundet.

10. Automatiske smarte felter og smarte felter ved klik#

Hvert brand har to indstillinger: Automatic configuration of smart fields og Smart field configuration at the click of the button. Knappen i editoren bruger konfigurationen til klik og falder kun tilbage på den automatiske når der ikke findes nogen konfiguration til klik. Et felt der er sat til den offentlige skabelon Empty, ryddes når du klikker på knappen fordi editoren skriver den genererede værdi tilbage i feltet.

Robotter bruger ikke disse brandindstillinger. Hver robot har sine egne kilder, for eksempel Message's source og Description's source, som peger på en indbygget værdi (Title, Description og så videre) eller på en Smart Message-skabelon.

11. Fejlfinding#

11.1. Min robot overvåger sin kilde, men opretter intet opslag#

En aktiv robot kan finde artiklen og alligevel ikke oprette noget opslag hvis dens Smart Message renderer en tom meddelelse. Det sker for eksempel når skabelonen læser et valgfrit felt som meta_custom_publisher, og artiklen ikke har det. Nonli frasorterer så kandidaten før publicering: en meddelelse der er tom eller har fem tegn eller færre når det korte link er fjernet, kasseres, og det samme gælder et linkopslag med en tom titel. Kontrollen af tomme meddelelser gælder ikke for robotter der er sat til No message, eller for Pinterest; kontrollen af tomme titler gælder for alle robotter.

Det er noget andet end et opslag der blev oprettet og derefter fejlede på netværket: sådan et opslag kan ses i Posts med en fejlstatus. Se Hvorfor publicerede min robot ikke denne artikel? for først at finde det trin hvor det går galt.

  1. Sammenlign. Find den præcise robot. Sammenlign nogle af de meddelelser den tidligere har genereret korrekt, med metadata for de tilsvarende artikler, og tjek hvad der er ændret i dens konfiguration. Et skabelonnavn eller sidens nuværende HTML beviser ikke i sig selv hvad der plejede at virke. Render den nuværende skabelon på en repræsentativ artikel der opfylder betingelserne, og tjek om variablen mangler eller findes, men er tom.

  2. Ret. Gendan helst den tidligere meddelelseskilde hvis den gav den ønskede ordlyd, eller tilføj en reserveværdi der passer til variablens type:

    twig
    1{{- meta_custom_publisher ?: title -}}

    Hvis artiklens titel svarer til den ønskede ordlyd, skal du åbne robotten, sætte Message's source til Title og derefter klikke på Save. Det ændrer den genererede tekst.

    Nonlis robotindstillinger med Message's source sat til Title, ved siden af knapperne Cancel og Save

    Uddrag af robotindstillingerne: Message's source sat til Title før der klikkes på Save.

  3. Omfang. En ændring af robottens kilde påvirker kun robottens fremtidige opslag. En redigering af en delt Smart Message-skabelon påvirker alle de robotter og felter der bruger den. Eksisterende opslag bliver aldrig omskrevet.

  4. Tjek. Vent på den næste normale overvågning, og se på artikler der stadig opfylder betingelserne. Ældre artikler bliver ikke indhentet automatisk, og et manuelt opslag beviser ikke at robotten fungerer igen.

11.2. Kort markør, manchet og første sætning er forskellige værdier#

En kort redaktionel markør (som nogle gange kaldes kicker eller overrubrik), den fulde manchet og første sætning i en tekst er tre forskellige ting. Nonli har ingen særlig variabel til den korte markør: en webstedsspecifik regel kan gemme den i et meta_custom_*-felt, og nogle artikler har med god grund ingen. Erstat ikke en manglende markør med hele manchetten. Vis kun markøren når den findes:

twig
1{%- set marker = meta_custom_instagram|default('')|trim -%}
2{%- if marker -%}{{- marker ~ ' | ' -}}{%- endif -%}
3{{- title -}}

Med en markør er resultatet EXCLUSIVE | Budget 2027: what changes, og uden en markør er det kun titlen. Her er meta_custom_instagram kun et eksempel: brug det felt din webstedsregel faktisk udfylder.

meta_description (sidens egen metabeskrivelse), meta_custom_publisher (tilpasset felt) og description (beskrivelse valgt af Nonli) er separate input. En skabelon der læser ét af dem, påvirkes ikke når et andet bliver rettet. En opdatering af et indsamlet felt ændrer ikke den valgte robotkilde, teksten i Smart Image eller opslag der allerede er genereret.

11.3. Fuld indsamlet beskrivelse eller første sætning i manchetten#

Fire værdier forveksles ofte når en robot sammensætter sin meddelelse:

  • Indsamlet beskrivelse (description, organic.description): den artikelbeskrivelse som Nonli har indsamlet, brugt som den er, uden at være delt op i sætninger. Nonli tager den først fra artiklens strukturerede data, ellers fra dens Open Graph, derefter Twitter Card og derefter sidens egen metabeskrivelse. Når den kommer fra disse tags, beholder den deres afskæring ved 500 tegn. Beskrivelsen fra RSS-elementet (meta_custom_rss_description) bruges aldrig som den indsamlede beskrivelse.
  • Sidens egne metadata (meta_description, og_description, twitter_description): de beskrivelser der er angivet i sidens metatags. Nonli skærer hver af dem af ved 500 tegn når de indsamles. Denne grænse gælder kun disse tre felter: en indsamlet beskrivelse fra strukturerede data bliver ikke skåret af.
  • Første sætning: en skabelon som Template: [public] Message from first standfirst sentence beholder bevidst én sætning og håndterer linket med sin egen [SHORTLINK]-markør.
  • Kort markør: et valgfrit felt beskrevet i det forrige afsnit, som nogle artikler ikke har.

Hverken et skabelonnavn eller den valgte kilde beviser at den indsamlede beskrivelse er din komplette manchet. Sådan publicerer du den fulde indsamlede beskrivelse i stedet for dens første sætning:

  1. Tjek hvad der er indsamlet. Sammenlign description på nogle repræsentative artikler med den komplette manchet du forventer. Hvis den mangler, er afskåret eller indeholder brødtekst i stedet for manchetten, så bed først support om at rette og kontrollere indsamlingen. En ændring af robottens kilde kan ikke genskabe tekst der ikke er indsamlet.
  2. Skift kilden. Åbn robotten, sæt Message's source til Description, og klik derefter på Save. Forveksl den ikke med Description's source, som udfylder opslagets beskrivelsesfelt, ikke dets tekst.
  3. Tjek den næste meddelelse. Se på det næste opslag robotten genererer: hele teksten, hvor linket står, og tekstgrænsen på hvert destinationsnetværk. En fuld beskrivelse kan være lang, og valget af den garanterer ikke at alle netværk accepterer hele teksten. Nonli håndterer stadig det korte link: på et opslag uden indbygget link tilføjer Nonli det korte link lige efter den genererede tekst, før et eventuelt robotsuffiks og hashtags medmindre den første kommentar allerede indeholder det. Link- og delingsopslag får ikke tilføjet noget kort link, bortset fra linkopslag på X og Mastodon, hvor det tilføjes helt til sidst. Meddelelser på Instagram og TikTok får ikke noget kort link. En skabelon med første sætning kan forkorte teksten eller placere linket forskelligt fra netværk til netværk, så forvent ikke det samme resultat.
  4. Omfang. Ændringen gælder kun de opslag denne robot genererer fra nu af. Eksisterende opslag, andre robotter og delte Smart Message-skabeloner er uændrede, og ingen ældre artikel bliver importeret eller publiceret igen.

11.4. Apostroffer ødelægger min skabelon#

I en Twig-streng med enkelte anførselstegn afslutter en apostrof strengen. Denne skabelon afvises når du gemmer den, med en fejl som »Invalid template syntax at line 1«:

twig
1{{ gpt('Summarize the article's main point') }}

Escape apostroffen, brug en typografisk apostrof, eller brug dobbelte anførselstegn:

twig
1{{ gpt('Summarize the article\'s main point') }}
2{{ gpt('Summarize the article’s main point') }}
3{{ gpt("Summarize the article's main point") }}

Det angivne linjenummer er den linje i skabelonen der indeholder fejlen.

11.5. En variabel forbliver tom#

  • Tjek den præcise stavemåde: organic.category, ikke categories, og tags, ikke tag.
  • Tjek at opslaget har en artikel: organic er tom for manuelle opslag og opslag uden link, og aliasserne er så udefinerede.
  • Udskriv en liste med |join(', '), eller test den med in.
  • Sammenlign kategorier med deres normaliserede form (politique societe, ikke Politique & Société).
  • Tjek tællere med ?? 0, for de mangler før publicering.

11.6. Kan en skabelon tilføje samarbejdspartnere på Instagram?#

Nej. Skabeloner udfylder kun tekstfelter, og airtable() returnerer tekst: den kan skrive en @omtale, men ikke oprette et samarbejde. Tilføj samarbejdspartnere i opslagseditoren med Collaborators eller med API-feltet collaborator[] (slug, type) i POST eller PUT /v2.1/posts/bulk. Meta accepterer op til 3 samarbejdspartnere; se Sådan laver du et Instagram-samarbejde med Nonli.

Var denne artikel nyttig?

Book en personlig demo med vores team.