Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2018-02-07, 20:15
  #1
Medlem
FromAnotherPlaces avatar
Jag är lite av en nybörjare på det här, men om en längre text skrivs i <p></p> i XML, så går det att använda CSS för att snygga till designen och upplägget på texten i paragraferna (även lägga till bakgrundsfärg, ändra textstorlek, etc.). Nu undrar jag hur man skulle göra i CSS om man vill att en större textmängd i XML skall lägga sig "rakt" på båda sidorna. Exempel:

Jag vill inte ha det så här:

<p>xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxx</p>

Utan så här:

<p>xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx</p>

Förstår ni hur jag menar och hur använder jag mig av CSS för att få till detta i XML-texten? Samma funktion finns i de flesta ordbehandlingsprogram.
__________________
Senast redigerad av FromAnotherPlace 2018-02-07 kl. 20:18.
Citera
2018-02-07, 21:48
  #2
Medlem
justify bish
Citera
2018-02-07, 21:58
  #3
Medlem
Sitkins avatar
Detta är väl något som skulle kunna göras mha xslt? Eller vill du göra dett specifikt med css?
Citera
2018-02-08, 05:15
  #4
Medlem
FromAnotherPlaces avatar
Tack för era svar.

p { text-align: justify;
}

löste problemet. XSLT verkar rimligt, är dock inte riktigt där ännu. Experimenterar på egen hand med CSS+XML för tillfället.
Citera
2018-02-10, 21:51
  #5
Medlem
FromAnotherPlaces avatar
Citat:
Ursprungligen postat av Sitkin
Detta är väl något som skulle kunna göras mha xslt? Eller vill du göra dett specifikt med css?

Jag inser nu att jag vill göra det med XSLT. Efter att ha läst på lite så inser jag att XSLT är det korrekta tillvägagångssättet, då det passar mitt ändamål bättre. Berätta gärna lite mer om hur jag kan använda mig av XSLT för frågan i trådstarten. Jag har läst:

https://www.w3schools.com/xml/xml_xslt.asp
och skummat igenom http://www.tei-c.org/release/doc/tei-xsl/
Citera
2018-02-11, 09:38
  #6
Medlem
Vetenskapspojkens avatar
Citat:
Ursprungligen postat av FromAnotherPlace
Jag inser nu att jag vill göra det med XSLT. Efter att ha läst på lite så inser jag att XSLT är det korrekta tillvägagångssättet, då det passar mitt ändamål bättre. Berätta gärna lite mer om hur jag kan använda mig av XSLT för frågan i trådstarten. Jag har läst:

https://www.w3schools.com/xml/xml_xslt.asp
och skummat igenom http://www.tei-c.org/release/doc/tei-xsl/

Av ren nyfikenhet, varför använder du dig av teknikerna XML respektive XSLT? Jag googlade lite, men det gjorde mig inte mycket klokare. Jag vet alltså inte riktigt vad dessa tekniker är lämpade för.

Om du vill göra något som fungerar med vanlig HTML, så föreslår jag att du använder dig av just detta, då det är bättre dokumenterat.

Om sedan CSS-syntaxen är densamma för HTML respektive XML/XSLT, så lär det ovan nämnda inte vara lika relevant om du främst stöter på patrull vad designen beträffar.
Citera
2018-02-11, 10:06
  #7
Medlem
FromAnotherPlaces avatar
Citat:
Ursprungligen postat av Vetenskapspojken
Av ren nyfikenhet, varför använder du dig av teknikerna XML respektive XSLT? Jag googlade lite, men det gjorde mig inte mycket klokare. Jag vet alltså inte riktigt vad dessa tekniker är lämpade för.

Om du vill göra något som fungerar med vanlig HTML, så föreslår jag att du använder dig av just detta, då det är bättre dokumenterat.

Om sedan CSS-syntaxen är densamma för HTML respektive XML/XSLT, så lär det ovan nämnda inte vara lika relevant om du främst stöter på patrull vad designen beträffar.

Problemet är att ändamålet är att via specifikt XML/XSLT i slutändan skapa en EPUB-fil, som kan läsas som en E-bok på olika plattformar. Det här går inte (mig veterligen) att göra med HTML+CSS (som jag redan behärskar) och uppenbarligen inte med XML+CSS utan bör - enligt korrekt tillvägagångssätt - göras specifikt med XML/XSLT.
Citera
2018-02-11, 10:10
  #8
Moderator
vhes avatar
Citat:
Ursprungligen postat av FromAnotherPlace
Problemet är att ändamålet är att via specifikt XML/XSLT i slutändan skapa en EPUB-fil, som kan läsas som en E-bok på olika plattformar. Det här går inte (mig veterligen) att göra med HTML+CSS (som jag redan behärskar) och uppenbarligen inte med XML+CSS utan bör - enligt korrekt tillvägagångssätt - göras specifikt med XML/XSLT.

Fast det måste väl finnas ett sätt i EPUB-formatet för att justera text? Det kan knappast vara rimligt att göra på grunddata-nivå (alltså i resulterande XML-data). Då lär den ju bara bli justerad för vissa specifika dimensioner ändå. Har inte EPUB något som fyller liknande funktion som CSS?
Citera
2018-02-11, 10:27
  #9
Medlem
Vetenskapspojkens avatar
Citat:
Ursprungligen postat av FromAnotherPlace
Problemet är att ändamålet är att via specifikt XML/XSLT i slutändan skapa en EPUB-fil, som kan läsas som en E-bok på olika plattformar. Det här går inte (mig veterligen) att göra med HTML+CSS (som jag redan behärskar) och uppenbarligen inte med XML+CSS utan bör - enligt korrekt tillvägagångssätt - göras specifikt med XML/XSLT.

Du har helt rätt. Man kan inte skapa/konvertera HTML + CSS till en EPUB-fil. Jag kan i och för sig ha fel, men jag har dock aldrig hört talas om att det ska vara möjligt.

Så XSLT är till för att style:a din XML, med andra ord?

Jag googlade lite och kom över en tråd på Stack Overflow där en användare går igenom hur man skapar en EPUB-fil med hjälp av PHP, det kanske kan vara något för dig att kika på?

https://stackoverflow.com/questions/...-format-in-php

I och för sig behandlade tråden hur man, med hjälp av PHP, kan låta en användare ladda ned din kod i .epub-format, vilket kanske inte är exakt det du eftersöker. Men det kan likväl vara nyttig läsning ändå, hellre för mycket kunskap än för lite!

PS. Jag ber om ursäkt för att jag tar upp PHP i denna forumdel då programmeringsspråket ifråga ju har sin egen forumdel. Jag uppmanar ingen att börja diskutera diverse tillvägagångssätt för hur man gör detta på bästa sätt m.h.a. PHP, utan ville mest belysa att det kan vara ett alternativt värt att kika på!
Citera
2018-02-11, 10:36
  #10
Medlem
Vetenskapspojkens avatar
Citat:
Ursprungligen postat av vhe
Fast det måste väl finnas ett sätt i EPUB-formatet för att justera text? Det kan knappast vara rimligt att göra på grunddata-nivå (alltså i resulterande XML-data). Då lär den ju bara bli justerad för vissa specifika dimensioner ändå. Har inte EPUB något som fyller liknande funktion som CSS?

Det är möjligt att skapa .epub-filer med hjälp av Adobe InDesign. Jag misstänker att programmet genererar "grunddatan", det vill säga XML/XHTML/XSLT + eventuellt tillhörande CSS. Nackdelen är ju att du måste införskaffa InDesign, vilket kan kosta en slant.

Med det sagt så tycker jag ändå att TS tillvägagångssätt verkar bra då man ju lär sig hur den här typen av fil egentligen är uppbyggd, och jag misstänker (källa saknas) att större modifikationer kan utföras.
Citera
2018-02-11, 10:39
  #11
Medlem
FromAnotherPlaces avatar
Citat:
Ursprungligen postat av vhe
Fast det måste väl finnas ett sätt i EPUB-formatet för att justera text? Det kan knappast vara rimligt att göra på grunddata-nivå (alltså i resulterande XML-data). Då lär den ju bara bli justerad för vissa specifika dimensioner ändå. Har inte EPUB något som fyller liknande funktion som CSS?

Själva rimligheten i det här fallet ligger just i tanken att göra det från grunden med datan i XML och strukturen/designen i XSLT. Här kan du läsa mer om EPUB----->https://en.wikipedia.org/wiki/EPUB, som är ett XML-baserat format. Från w3schools-länken som jag postade ovan:

Citat:
XSLT (eXtensible Stylesheet Language Transformations) is the recommended style sheet language for XML.

XSLT is far more sophisticated than CSS. With XSLT you can add/remove elements and attributes to or from the output file. You can also rearrange and sort elements, perform tests and make decisions about which elements to hide and display, and a lot more.

XSLT uses XPath to find information in an XML document.

Faktum är att jag är så ny på själva grejen att jag själv inte till fullo förstår vad det är jag håller på med, men om vi gör en parallell till HTML/CSS, så ser det ut på följande sätt:

<!DOCTYPE html>
<html>
<head>
<title>Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link href="style.css" type="text/css" rel="stylesheet" />
</head>
[...]

Då bör det finnas något motsvarande sätt att (se rad 6) i XML länka till ett XSL https://www.w3.org/Style/XSL/WhatIsXSL.html. Det bästa vore om det fanns ett färdigt basic XSL som kunde användas i syftet. Jag tror att den här bilden illusterar rätt så väl vad jag vill åstadkomma i slutändan. Det är alltså XHTML-outputen som blir en EPUB-fil.

Citat:
Ursprungligen postat av Vetenskapspojken
Du har helt rätt. Man kan inte skapa/konvertera HTML + CSS till en EPUB-fil. Jag kan i och för sig ha fel, men jag har dock aldrig hört talas om att det ska vara möjligt.

Så XSLT är till för att style:a din XML, med andra ord?

Jag googlade lite och kom över en tråd på Stack Overflow där en användare går igenom hur man skapar en EPUB-fil med hjälp av PHP, det kanske kan vara något för dig att kika på?

https://stackoverflow.com/questions/...-format-in-php

Tack så mycket för svar. Jag ska kolla in den tråden
Citera
2018-02-11, 10:57
  #12
Moderator
vhes avatar
Citat:
Ursprungligen postat av FromAnotherPlace
Själva rimligheten i det här fallet ligger just i tanken att göra det från grunden med datan i XML och strukturen/designen i XSLT. Här kan du läsa mer om EPUB----->https://en.wikipedia.org/wiki/EPUB, som är ett XML-baserat format. Från w3schools-länken som jag postade ovan:

Jodå, jag är med på hur XML och XSLT förhåller sig till varandra. Min poäng är att det specifika du frågade om, att justera text så att den får både jämn höger- och vänstermarginal, är inte ett jobb för XSLT heller. XLST transformerar mellan två olika XML-strukturer. Jobbet med textjustering bör fortfarande ligga på just CSS, vilket verkar vara en del av EPUB-formatet, att döma av din Wikipedia-länk.
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback