Taggar blir fel i citat

Taggar blir fel i citat

Detta inlägg innehåller bland annat följande källkod:

(t ex Nightly och @"LemonIllusion"s version)

Resultatet är, som förväntat:

(t ex Nightly och @LemonIllusions version)

Om man däremot citerar inlägget (med knappen Citera) blir det så här:

Skrivet av Alling:

(t ex Nightly och @LemonIllusions version)

Taggen är nu trasig, då @LemonIllusions inte är en existerande medlem. Ännu mer problematiskt vore det om det faktiskt fanns en medlem med det namnet, eftersom missförstånd om vem som åsyftas i ett inlägg då skulle kunna uppstå.

Skrivet av Alling:

Detta inlägg innehåller bland annat följande källkod:

(t ex Nightly och @"LemonIllusion"s version)

Resultatet är, som förväntat:

(t ex Nightly och @LemonIllusions version)

Om man däremot citerar inlägget (med knappen Citera) blir det så här:

Taggen är nu trasig, då @LemonIllusions inte är en existerande medlem. Ännu mer problematiskt vore det om det faktiskt fanns en medlem med det namnet, eftersom missförstånd om vem som åsyftas i ett inlägg då skulle kunna uppstå.

Hej,

Ja, det ser ut som en liten bugg. Skriver upp den.

Mvh // Anton

Hej,

Jag har nu undersökt frågan angående feltaggning (@-medlem) vid citering och det här kommer ta för långt tid att skriva om för att det ska vara värt det. Funktionen tolkar alla tecken utom riktiga avslut t.ex. mellanslag som en del av användarnamnet. Skulle vi tvinga in citering, så blir det dubbelcitering. Och tar vi bort det vid förhandsgranskning/post är vi tillbaka på ruta ett igen.

Vi lägger hellre tid på andra förbättringar, då man kan undvika problemet genom att inte lägga till bokstäver direkt efter användarnamnet:

@"LemonIllusion"s

Det går däremot att använda ' då det anses vara ett avslutande tecken.

@LemonIllusion's

Det fungerar även om personen skulle ha ett mellanslag i användarnamnet, som " " är byggd för.

@"Lemon Illusion"'s

Mvh
Johan

Skrivet av jreklund:

Hej,

Jag har nu undersökt frågan angående feltaggning (@-medlem) vid citering och det här kommer ta för långt tid att skriva om för att det ska vara värt det. Funktionen tolkar alla tecken utom riktiga avslut t.ex. mellanslag som en del av användarnamnet. Skulle vi tvinga in citering, så blir det dubbelcitering. Och tar vi bort det vid förhandsgranskning/post är vi tillbaka på ruta ett igen.

Mm, det förvånar nog ingen att detta inte är något man löser på en kafferast.

Citat:

Vi lägger hellre tid på andra förbättringar, då man kan undvika problemet genom att inte lägga till bokstäver direkt efter användarnamnet:

@"LemonIllusion"s

Detta funkar ju inte i citat då.

Citat:

Det går däremot att använda ' då det anses vara ett avslutande tecken.

@LemonIllusion's

Det fungerar även om personen skulle ha ett mellanslag i användarnamnet, som " " är byggd för.

@"Lemon Illusion"'s

Mvh
Johan

Apostrof hjälper kanske inte riktigt, då det inte ska vara det på svenska. Lustigt nog kan jag dock konstatera att om namnet har ett mellanslag funkar allt som det ska (utan apostrof). Behold:

@"Better SweClockers"foo

@"Alling"foo

Resultat:

@Better SweClockersfoo

@Allingfoo

Båda funkar alltså. Men om man citerar det inlägget:

Endast namnet utan mellanslag har blivit "manglat", vilket inger visst hopp ändå. Förstod inte helt din förklaring ovan; skulle du vilja posta koden i fråga?

Skrivet av Alling:

Detta funkar ju inte i citat då.

Det stämmer, det är den problematiken du lyft i och med tråden.

Skrivet av Alling:

Apostrof hjälper kanske inte riktigt, då det inte ska vara det på svenska.

Det är vad vi kan erbjuda för tillfället. @ kräver ett avslutande tecken (skiljetecken) som inte är bindestreck eller understreck. Då resterande tecken anses vara en del av användarnamnet.

Skrivet av Alling:

Lustigt nog kan jag dock konstatera att om namnet har ett mellanslag funkar allt som det ska (utan apostrof).
Endast namnet utan mellanslag har blivit "manglat", vilket inger visst hopp ändå. Förstod inte helt din förklaring ovan; skulle du vilja posta koden i fråga?

Då citattecken (") inte är en del av ett giltigt användarnamn tas den därför bort när det inte behövs dvs. när ett användarnamn inte innehåller mellanslag. Och läggs inte automatiskt dit igen (vid rendering). Problemet som inte kunde avhjälpas på en halvdag var att lära systemet att citat (") ska vara kvar när någon tvingar ett användarnamn till det, utan att förstöra någon annan grundläggande funktionalitet i BBCode stödet.

om (mellanslag) { "sträng" } eller { sträng }

Vilket gör att den lägger till ditt s, eller vilken bokstav man nu lägger direkt efter. När man inte använder ett skiljetecken (- och _ exkluderat). Vid citering är @ en simpel sträng utan funktion, och då ditt s kommer precis efter. Blir det en del av användarnamnet.

Exempel med ett giltigt skiljetecken:
@alling-_123!

Vi får därför:

@alling ipsum dolor sit amet, consectetur adipiscing elit. @allings quis velit congue, lobortis quam eu, ullamcorper dolor. @"alling med mellanslag" arcu tellus, interdum ut bibendum in, maximus ut orci. @alling sit amet dui a ligula scelerisque tincidunt eu ac augue. Sed tincidunt at felis vel sollicitudin. Nunc at finibus mi. @alling sed ante non urna iaculis aliquam. @alling ultrices arcu vel justo dapibus, sodales sollicitudin nulla faucibus.

Skulle vi ha en kod som säger såhär vid utskrift istället.

"sträng"

Blir resultatet:

@"alling" ipsum dolor sit amet, consectetur adipiscing elit. @"alling"s quis velit congue, lobortis quam eu, ullamcorper dolor. @"alling med mellanslag" arcu tellus, interdum ut bibendum in, maximus ut orci. @"alling" sit amet dui a ligula scelerisque tincidunt eu ac augue. Sed tincidunt at felis vel sollicitudin. Nunc at finibus mi. @"alling" sed ante non urna iaculis aliquam. @"alling" ultrices arcu vel justo dapibus, sodales sollicitudin nulla faucibus.

Vilket gör att @ funktion överallt på forumet blir felaktig, då man normalt inte behöver behandla mellanslag. Vilket är ett tillåtet tecken i vår forummjukvara.

Skrivet av jreklund:

Det stämmer, det är den problematiken du lyft i och med tråden.

Det är vad vi kan erbjuda för tillfället. @ kräver ett avslutande tecken (skiljetecken) som inte är bindestreck eller understreck. Då resterande tecken anses vara en del av användarnamnet.

Då citattecken (") inte är en del av ett giltigt användarnamn tas den därför bort när det inte behövs dvs. när ett användarnamn inte innehåller mellanslag. Och läggs inte automatiskt dit igen (vid rendering). Problemet som inte kunde avhjälpas på en halvdag var att lära systemet att citat (") ska vara kvar när någon tvingar ett användarnamn till det, utan att förstöra någon annan grundläggande funktionalitet i BBCode stödet.

om (mellanslag) { "sträng" } eller { sträng }

Vilket gör att den lägger till ditt s, eller vilken bokstav man nu lägger direkt efter. När man inte använder ett skiljetecken (- och _ exkluderat). Vid citering är @ en simpel sträng utan funktion, och då ditt s kommer precis efter. Blir det en del av användarnamnet.

Exempel med ett giltigt skiljetecken:
@alling-_123!

Vi får därför:

@alling ipsum dolor sit amet, consectetur adipiscing elit. @allings quis velit congue, lobortis quam eu, ullamcorper dolor. @"alling med mellanslag" arcu tellus, interdum ut bibendum in, maximus ut orci. @alling sit amet dui a ligula scelerisque tincidunt eu ac augue. Sed tincidunt at felis vel sollicitudin. Nunc at finibus mi. @alling sed ante non urna iaculis aliquam. @alling ultrices arcu vel justo dapibus, sodales sollicitudin nulla faucibus.

Skulle vi ha en kod som säger såhär vid utskrift istället.

"sträng"

Blir resultatet:

@"alling" ipsum dolor sit amet, consectetur adipiscing elit. @"alling"s quis velit congue, lobortis quam eu, ullamcorper dolor. @"alling med mellanslag" arcu tellus, interdum ut bibendum in, maximus ut orci. @"alling" sit amet dui a ligula scelerisque tincidunt eu ac augue. Sed tincidunt at felis vel sollicitudin. Nunc at finibus mi. @"alling" sed ante non urna iaculis aliquam. @"alling" ultrices arcu vel justo dapibus, sodales sollicitudin nulla faucibus.

Vilket gör att @ funktion överallt på forumet blir felaktig, då man normalt inte behöver behandla mellanslag. Vilket är ett tillåtet tecken i vår forummjukvara.

Mycket bra förklaring! Det förvånar mig inte alls att detta är svårlösligt; jag tänker mig att BBCode-parsern och tillhörande komponenter måste vara en av kodbasens mest besvärliga delar att jobba med.

Dock är det en liten sak jag ännu inte förstår fullt ut: Du gav ett exempel på hur det skulle bli om man ändrade if mellanslag then '"' + username + '"' else username till "Alling". Men det resultatet ser rätt ut för mig, förutsatt att det läses som källkod. Menar du att det skulle vara det renderade resultatet?

Ursäkta mina många frågor, men jag tycker detta är hur intressant som helst. Jag är en fullblodsnörd.

Skrivet av Alling:

Dock är det en liten sak jag ännu inte förstår fullt ut: Du gav ett exempel på hur det skulle bli om man ändrade if mellanslag then '"' + username + '"' else username till "Alling". Men det resultatet ser rätt ut för mig, förutsatt att det läses som källkod. Menar du att det skulle vara det renderade resultatet?

Det löste hämtning av citaten, men skapade problem därefter.

Problematiken jag fick när jag tvingade att citat (") las till på användarnamn utan mellanslag är att den vid förhandsgranskning/skicka meddelande gjorde samma sak. Och jag drabbades av dubbelcitering:
@"Alling"s

Och det blev lite för mycket undantag att ta hänsyn till.