DoX CMS:n versio 8.8 toi mukanaan merkittäviä muutoksia otsikoiden ja julkaisujen sisäisten linkkien pohjarakenteeseen. Nämä muutokset näkyvät myös sisällysluetteloissa. Käyn täällä läpi näitä muutoksia sekä niihin liittyviä tarpeita ja mahdollisuuksia.
Käyn ensin läpi tekemämme muutokset julkaisupohjiin ja niiden syyt. Tämän jälkeen erittelen niiden merkitystä käyttäjillemme. Julkaisupohjan muuttuessa on aina tarpeen tarkistaa, syntyykö näistä muutoksista tarvetta muutoksille tyylitiedostoissa. Tässä tapauksessa tiedämme ennakkoon ainakin yhdestä ongelmasta, johon meillä on ehdottaa valmis korjaus tyyleihin, joissa se muutoin ilmenee. Työnkierrossa aiemmin jäädytetyt julkaisut käyttävät edelleen vanhaa julkaisupohjaa, eli tämä muutos ei vaikuta niihin.
Muutokset julkaisupohjaan
Lisäsimme päivityksessä kuhunkin näistä osuuksista erikseen nimettyjä alaosuuksia. Näiden alaosuuksien avulla voit hallinnoida minkä tahansa niistä näkyvyyttä, asettelua ja tyylittelyä. Tämä laajentaa merkittävästi mahdollisuuksia muokata näiden osuuksien ulkoasuja.
Kukin osio alla näyttää sekä näiden elementtien vanhan muotoilun että niiden uuden rakenteen. Tällä tavoin voit verrata niitä ja nähdä erot itse. Tällainen vertailu on erityisen hyödyllistä, mikäli jokin osa tyylejänne rikkoutui tämän päivityksen seurauksena. Käyn alempana läpi tarkemmin mahdollisia ongelmia tältä osin mutta myös hyötyjä, jotka tämä päivitys mahdollistaa.
Sisällysluettelo
Vanhassa pohjassa sisällysluettelon kohtien numero ja otsikko oli erotettu toisistaan pelkällä välilyönnillä. Tästä syystä niiden välinen syvennys ei ollut hallinnoitavissa. Jatkossa kummallekin osuudelle on lisätty omat kehyksensä, joiden avulla voit lisätä niille omat tyylinsä kuten määrätyn leveyden.
X on kyseisen sisällysluettelon kohdan syvennystaso. Y on kyseisen luvun numerotunniste. Z on luvun sivunumero. Kohdat tocdots ja tocpagenum tulevat mukaan vain sivullisiin julkaisuihin eivätkä siksi näy esikatseluissa.
<li class="tocline toclineX">
<a class="toclink" href="topic_link_Y">
<span class="tocheading tocheadingX">Y Title</span>
<span class="tocdots" />
<span class="tocpagenum tocpagenumY">Z</span>
</a>
</li>
Lisäämämme osuudet ovat
- dox-topic-title-number,
- dox-topic-title-space, ja
- dox-topic-title-value.
Nämä arvot tulevat luvun numerotunnisteen, erottavan välilyönnin ja varsinaisen luvun otsikon ympärille. Välilyönnille on oma tunnisteensa, jotta sitä voi hallinnoida tarvittaessa itsenäisesti, vaikka se pysyy mukana jatkuvuuden vanhoille käyttäjille varmistamiseksi.
<li class="tocline toclineX">
<a class="toclink" href="#topic_linkY">
<span class="tocheading tocheadingX">
<span class="dox-topic-title-number">Y</span>
<span class="dox-topic-title-space"> </span>
<span class="dox-topic-title-value">Title</span>
</span>
<span class="tocdots" />
<span class="tocpagenum tocpagenumY">Z</span>
</a>
</li>
Otsikot
Tässä tapauksessa otsikot kattavat sekä lukujen otsikot että elementtien otsikot.
Lukujen otsikot
Toisin kuin vanhassa sisällysluettelossa, lukujen otsikoissa numerotunniste on aina ollut itsenäisesti hallinnoitavissa.
X on kyseisen luvun syvennystaso. Y on sen numerotunniste.
<hX><span class="titleNumberWrapper">Y </span>Title</hX>
Uudet lukujen otsikot käyttävät samoja yllä listaamiani lisätunnisteita ja samaa lisättyä rakennetta kuin sisällysluettelo.
<hX>
<span class="titleNumberWrapper dox-topic-title-number">Y</span>
<span class="dox-topic-title-space"> </span>
<span class="dox-topic-title-value">Title</span>
</hX>
Elementtien otsikot
Elementeille on kahdenlaisia otsikoita: niitä, joilla on arvo tekstieditorin title-kentässä ja niitä, joilla sellaista ei ole. Tarkkaan ottaen kolmas tyyppi olisivat osioelementit (section), joilla on arvo title-kentässä, koska niitä ei numeroida. Ne ovat kuitenkin tästä syystä yhdentekeviä tässä yhteydessä.
Arvo ’element title settings’ vastaa Asetukset-valikossa määritettyä muotoilua. Saat lisättyä siihen sisäistä rakennetta tarvittaessa muilla keinoin. Olen käsitellyt keinoja lisätä rakennetta elementtien otsikkoon aiemmin.
<div class="dita-title"><span class="anchor-title">[element title settings] </span>Title</div>
<span class="anchor-title">[element title settings]</span>
Täällä uudet lisäämämme arvot ovat
- dox-dita-title-anchor,
- dox-dita-title-space, ja
- dox-dita-title-value.
Vaikka arvot eroavat hieman lukujen otsikoiden vastaavista arvoista, on niiden tausta-ajatus vastaava. Jokainen osa on itsenäisesti hallittavissa, mutta emme poista mitään, jotta myös vanhat tyylit säilyvät mahdollisimman käyttökelpoisina.
<div class="dita-title">
<span class="anchor-title dox-dita-title-anchor">[element title settings]</span>
<span class="dox-dita-title-space"> </span>
<span class="dox-dita-title-value">Title</span>
</div>
<span class="anchor-title dox-dita-title-anchor">[element title settings]</span>
Linkit
Samoin kuin sisällysluettelossa, linkeissä julkaisun lukuihin ei voinut aiemmin säätää eri osuuksien näkyvyyttä kuin enintään aiemmin ehdottamallani epäsuorilla keinoilla. Nyt niissä saa piilotettua kohteiden otsikoiden osuuksia tarvittaessa ja riippumatta siitä, näytetäänkö nämä arvot osana kohteen otsikointia.
Linkeissä elementteihin ei ole tapahtunut muutoksia tältä osin.
X on otsikkosisältöelementin (topic) ID-arvo. Y on sitä vastaavan julkaisun luvun numerotunniste.
<a class="doxInnerReference href="#X"><span class="reference-title">Y Title</span></a>
Uusien linkkien lukuihin sisäinen rakenne vastaa lukujen otsikoiden yllä esitettyä uutta sisäistä rakennetta.
<a class="doxInnerReference" href="#X">
<span class="reference-title">
<span class="dox-topic-title-number">Y</span>
<span class="dox-topic-title-space"> </span>
<span class="dox-topic-title-value">Title</span>
</span>
</a>
Haasteet
Mikään muutos pohjarakenteesen ei ole täysin vailla riskejä. Tästä syystä on välttämätöntä, että katselmoitte jäädyttämättömiä julkaisujanne erityisen tarkkaan tämän päivityksen jälkeen. Olemme ennakkoon tietoisia joistakin väistämättömistä haasteista, joihin on onneksi helpot ja tiedossa olevat ratkaisut. Käyn myös nämä ratkaisut läpi alla.
Kopiot vanhasta oletussisällysluettelon tyylistä
Tämä on kaikkein suurin haaste liittyen näihin muutoksiin. Se liittyy sisällysluetteloiden asetteluun tyylitiedostoissa, joihin on kopioitu vanhoista oletustyylitiedostoistamme uudemmissa oletustyylitiedostoissa korjaamamme ongelma. Korjaus on onneksi sekä yksinkertainen että saatavilla uusista oletustyylitiedostoista. Emme kuitenkaan voi korjata sitä automaattisesti, koska emme ryhdy muokkaamaan asiakkaidemme tyylitiedostoja koneellisesti, ja kopioidut osuudet eivät ole kytköksissä päivitettyihin oletustiedostoihin.
Ongelmana on, että vanhassa oletustyylitiedostossa erinäiset säännöt koskien sisällysluettelon asettumista oli kirjoitettu oletuksella, että mukana ei ole muita kuin valmiiksi määritetyt span-elementit. Tästä syystä sen kirjoittaja oli unohtanut määrittää kyseisiin kohtiin, että sääntöjen tulisi tulla voimaan ainoastaan tiettyjen osuuksien välittöminä lapsina toimiville span-elementeille. Kyseiset säännöt näissä vanhoissa tiedostoissa koskevat sen sijaan kaikkia missä tahansa näiden osuuksien sisällä olevia span-elementtejä. Tämä aiheuttaa ongelmia myös esimerkiksi otsikoiden sisältäessä muuttujia.
Kyse on alla esitetyistä osuuksista, joita voitte hakea omista tyylitiedostoistanne.
ul.toccontent a {
display: table;
}
ul.toccontent a span {
display: table-cell;
}
ul.toccontent a span:first-child {
position: relative;
overflow: hidden;
}
html[data-document-type="dox-pdf"] ul.toccontent a span:first-child:after {
position: absolute;
margin-left: 0.3em;
width: 100%;
content:
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . ";
}
ul.toccontent a span + span {
text-align: right;
width: 1%;
vertical-align: bottom;
padding-left: 0.3em;
}
Näille löytyy korjaus käyttöoppaassamme. Käytännössä kuitenkin kyse on vain >-merkkien lisäämisestä alla esitetyllä tavalla erinäisiin kohtiin, joissa kohteena ovat a-elementtien sisällä olevat span-elementit. Älä kopioi ja liitä tätä osuutta kokonaan aiemman toteutuksenne tilalle siltä varalta, että omassa tyylissänne on tehty muutoksia johonkin sääntöön sen sisällä. Lisää vain puuttuvat lisämerkit näytettyihin valitsijoihin.
ul.toccontent a {
display: table;
}
ul.toccontent a > span {
display: table-cell;
}
ul.toccontent a > span:first-child {
position: relative;
overflow: hidden;
}
html[data-document-type="dox-pdf"] ul.toccontent a > span:first-child:after {
position: absolute;
margin-left: 0.3em;
width: 100%;
content:
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . "
". . . . . . . . . . . . . . . . . . . . ";
}
ul.toccontent a > span + span {
text-align: right;
width: 1%;
vertical-align: bottom;
padding-left: 0.3em;
}
Muutoksien vaikutukset asiakaskohtaisiin tyyleihin
Jos teillä on sääntöjä koskien muutoin eriyttämättömiä span-elementtejä näitä lisäyksiä pohjarakenteeseen vastaavissa sijainneissa, voivat kyseiset säännöt nyt osua myös lisättyihin osuuksiin. Tämä voi myös poistaa ne käytöstä niiden tarkoitetuilta kohteilta varsinkin käytössä ollessa laskureita, jotka valitsevat kohteensa järjestysnumeroon perustuen. Ensimmäisen span-elementin vaihtuessa uusi elementti on ainoa säännön kohde.
Toinen huomionarvoinen seikka on, kuinka välilyönnit ovat nyt omassa numeroinnin kanssa rinnakkaisessa elementissään sen sijaan, että ne olisivat kyseisen osuuden sisällä. Tästä syystä esimerkiksi julkaisujen lukujen otsikoinnin vakioidut syvennykset, jotka on toteutettu antamalla numero-osuudelle vakioitu leveys, eivät täsmää muutoksen jälkeen täysin alkuperäisiä syvennyksiä. Ero on yhden välilyönnin levyinen. Alkuperäisen leveyden saa palautettua piilottamalla nämä välilyönnit kyseisissä tilanteissa esimerkiksi seuraavanlaisella yksinkertaisella lisäyksellä tyylitiedostoonne:
.titleWrapper .dox-topic-title-space {
display: none;
}
Jäädytettyjen julkaisujen tyylien vaihtaminen
Tätä päivitystä vanhemmat jäädytetyt julkaisut tulevat käyttämään alkuperäistä julkaisupohjaa. Niiden jäädytetyt tyylit toki vastaavat kanssa alkuperäisiä. Kuitenkin vain julkaisun käyttöön sen jäädytyshetkellä valittuna olleet tyylit jäädytetään. Osa julkaisuista käyttää useampia tyylejä ja täten muut tällaiset tyylit tulevat sisältämään mahdolliset sovitukset uuteen julkaisupohjaan. Jos osa näistä sovituksista on kohdennettu myös vanhoihin tunnisteisiin tai osa vanhoihin tunnisteisiin alkujaan kytketyistä säännöistä on korvattu uusiin tunnisteisiin kytketyillä, voi tämä johtaa odottamattomiin eroihin, kun näitä tyylejä käytetään jäädytettyjen julkaisujen kanssa.
Kaikkein varmoin keino välttää tällaiset ongelmat olisi tietenkin tarvittaessa ylläpitää erillisiä tyylejä näille vanhoille julkaisuille. Tämä kuitenkin täyttää listaa tyyleistä tarpeettomasti tulevia julkaisuja silmällä pitäen. Toinen vaihtoehto olisi määrittää vanha tyylivalinta käyttöön vanhoille julkaisuille vain niihin kohdennetuilla valitsijoilla. Tämä olisi kuitenkin selvästi turhan työläs vaihtoehto, jos tällaisia julkaisuja on suuri määrä.
Onneksi tämä ongelma ilmenee vain, kun samaa julkaisua tarvitsee julkaista useammalla tyylillä ja ainoastaan silloin, kun päivitetty tyyli on säännöiltään yhteensopimaton vanhan pohjan kanssa. Näistä kahdesta ehdosta jälkimmäinen on käyttäjien hallinnoitavissa. Jos siis teillä on käytössä useampaa tyyliä tarvitsevia julkaisuja, olkaa varovaisia tyyleihin tekemienne muutoksien kanssa ja varmistakaa, että ne eivät riko vanhoja jäädytettyjä julkaisuita näissä tilanteissa.
Hyödyt
Yllä olevat haasteet eivät kuitenkaan ole mitään verrattuna näiden muutoksien tuomiin hyötyihin. Muussa tapauksessa emme olisi muuttaneet julkaisupohjaa tällä tavoin. Alla ovat tärkeimmät esimerkit näistä hyödyistä. Tällainen aiemmin itsenäisesti hallinoitavissa olemattomien osuuksien muuttaminen itsenäisesti hallinnoitaviksi poistaa rajoitteet siltä osin, miten käyttäjät voivat kohdentaa julkaisujensa tyylitiedostot.
Täysi näkyvyyden hallinnointi
Oletko halunnut piilottaa linkeissä julkaisujen lukuihin joko niiden numerotunnisteen tai nimen? Varsinkin useamman syvennystason tapauksessa numerotunniste voi käydä pitkäksi yhdessä kyseisen luvun nimen kanssa. Painetussa julkaisussa kuitenkin numerotunniste kertoo paremmin, mistä kyseinen osuus löytyy. Hakuja ja linkkejä suosivassa sähköisessä julkaisussa se voi olla täysin yhdentekevä yksityiskohta. Nyt nämä eri tilanteet saa huomioitua tällä tavoin paremmin kohdennetuilla tyyleillä, koska voit vapaasti piilottaa tai olla piilottamatta näitä yksityiskohtia.
Sama pätee sisällysluetteloihin, joissa voit nyt piilottaa haluamasi kuhunkin lukuun liittyvät tiedot. Tällä tavoin esimerkiksi verkkojulkaisuissa kuten WebHelp-oppaissa ei tarvitse näyttää lainkaan julkaisun lukujen numerotunnisteita, joiden merkitys on pienempi, kun osuuksia ei oletusarvoisesti lueta järjestyksessä.
Jälkikasattavat julkaisut
Merkittävä syy tälle uudistukselle oli myös eräiden asiakkaidemme ilmaisema halu kyetä kasaamaan julkaisuja reaaliajassa heidän käyttäjiensä tekemien valintojen perusteella. Vaikka se olisi periaattessa tehtävissä myös lähettämällä tällaiset pyynnöt suoraan heidän käyttöympäristöönsä, olisi tällöin tarpeen tuntuvan monimutkainen säätäminen useamman eri tahon tarpeiden sovittamiseksi yhteen. Tästä syystä ehdotimme ratkaisuksi, että kyseiset sisällöt julkaistaisiin ensin järjestelmästämme HTML-muotoisina ja sisältäen kaikki vaihtoehtoiset sisällöt, joita kyseiset käyttäjät voivat valita otettaviksi mukaan tarvitsemiinsa julkaisuihin. Asiakkaamme voivat sitten itse käyttää näitä HTML-julkaisuja pohjina, joista he voivat piilottaa osuuksia omien käyttäjiensä tekemien valintojen mukaisesti ennen näiden tyylitasolla sopeutettujen julkaisujen kasaamista PDF-muotoisiksi heidän omalla palvelimellaan. Tämä ratkaisu poistaa tarpeen järjestelmien rajapintojen kanssa säätämiselle, usean toimijan työn yhteensovittamiselle ja niin edelleen. Se ei kuitenkaan olisi toteutettavissa ilman tätä päivitystä.
Tämä päivitys oli tarpeen tältä osin, koska pelkkä eri osuuksien piilottaminen ei muuttaisi jo kasatun julkaisun näyttämiä arvoja eri laskureille julkaisujen lukujen, kuvien ja taulukoiden numeroinnissa. Tällöin osuudet, jotka suodatetaan ulos piilottamalla ne, jättäisivät jälkeensä aukkoja numeroinnissa.
Jos tosin nämä arvot on alkujaankin piilotettu kyseisessä julkaisussa ja niiden tilalle on rakennettu tyylitiedoston kautta tuotetut vastaavat arvot, nämä uudet arvot päivittyvät vastaamaan kulloinkin näytettyjä osuuksia. Tällöin kussakin tämän tiedoston perusteella otetussa, näytettyjen osuuksien osalta sovitetussa julkaisussa numerointi osuuksien välillä pysyy yhtenevänä.
Vastaavaa toteutusta tämän perusteella suunnittelevien on kuitenkin syytä huomioida, kuinka kyseinen asiakas selvisi vähimmällä mahdollisella työllä aiempien sisältöjen muokkaamisen osalta heidän alkuperäisten muotoilutapojensa vuoksi. Varsinkin taulukoihin ja kuviin kohdennetut linkit monimutkaistavat toteutusta merkittävästi, jos haluatte niihin mukaan tällaiset päivitetyt numerotunnisteet.
Muut tyylivalinnat
Tietenkin myös muu näihin osuuksiin kohdennettu tyylien kanssa säätäminen on nyt mahdollista. Näistä tärkein lienee kyky määrittää itse vakioitu syvennys julkaisujen lukujen numerotunnisteiden ja otsikoiden välille niiden sisällysluetteloissa. Aiemmin näiden kahden osuuden välillä oli vain välilyönti ja ne olivat molemmat saman elementin sisällä ilman ympäröivää lisärakennetta.
Nyt tämä syvennyksen määrä on hallinnoitavissa esimerkiksi joko määrittämällä numerotunnisteelle vakioleveys tai otsikolle vasen sisämarginaali. Kumpikin näistä muutoksista vaatii näiden osuuksien asettamista esimerkiksi ’inline-block’-tyyliseksi, jotta ne säilyvät rivinsisäisinä elementteinä, joille voi kuitenkin antaa lohkoelementeille tyypillisiä määreitä kuten vakioleveys tai marginaalit. Ensimmäinen ratkaisu vakioi välin numerotunnisteen ja otsikon alkamispisteiden välillä. Jos numerotunniste levenee, otsikko ei siirry enemmän oikealle. Toinen ratkaisu vakioi etäisyyden numerotunnisteen lopun ja otsikon alkamispisteen välillä.
Muita uusia vaihtoehtoja olisivat korostuskeinojen kuten lihavoinnin käyttäminen vain osuuksiin, jotka eivät aiemmin olleet hallinnoitavissa itsenäisesti. Myös värit ovat käytettävissä tällä tavoin, jos esimerkiksi haluat tehdä otsikoiden numerotunnisteista hieman vaaleampia niiden säilyttämiseksi näkyvissä mutta lukijoiden huomion ohjaamiseksi varsinaisiin otsikoihin.
Yhteenveto
DoX CMS versio 8.8 sisältää muutoksen käytetyn julkaisupohjan rakenteeseen. Voit nyt hallinnoida itsenäisesti kaikkia julkaisujen lukujen otsikoiden osia eri yhteyksissä sekä elementtien varsinaisia otsikoita. Vaikka linkit lukuihin ovat nyt hallinnoitavissa tällä tavoin, sama ei koske linkkejä elementteihin. Niiden osalta vastaava toteutus olisi merkittävästi monimutkaisempi, koska esimerkiksi vain osalla elementeistä on otsikot.
Muutos julkaisujen pohjarakenteeseen ei koskaan ole riskitön. Mikäli aiemmissa tyylitiedostoissa on sääntöjä, jotka on kohdennettu tavalla, joka osuu uusiin rakenteisiin, tai uudet rakenteet siirtävät valitsijoiden kohteet pois niiden piiristä, täytyy tyylitiedostoja sovittaa uuden pohjarakenteen mukaisiksi. Valitettavasti monen vanhaan tyylitiedostoon on kopioitu virhe, joka oli mukana omissa vanhoissa oletustyylitiedostoissamme, ja tämä virhe rikkoo uudistetut sisällysluettelot. Onneksi kyseisen virheen korjaaminen vaatii vain pienen muutoksen, johon olemme tarjonneet ohjeet myös käyttöoppaassamme. Aiemmin hyväksytyt julkaisut käyttävät edelleen vanhaa julkaisupohjaa, joten tällaiset yksityiskohdat niiden tyyleissä eivät vaikuta lopputuloksiin. Joskin tämä tarkoittaa, että muutokset uudempiin tyyleihin voivat olla yhteensopimattomia näiden vanhojen julkaisujen kanssa, jos niitä on tarkoitus julkaista useamman mahdollisen tyylin mukaisina.
Tämän muutoksen tuomat hyödyt ovat kuitenkin merkittäviä. Se tekee osuuksista, joiden tyylejä ei voinut hallinnoida itsenäisesti, tyyleiltään itsenäisesti hallinnoitavia. Tällä tavoin saat viimein hallinnoitua näiden osuuksien kuten sisällysluettelon rivien numerotunnuksien sekä otsikoiden näkyvyyttä, asettelua ja tyyliä. Tämä mahdollistaa esimerkiksi vakioidut yhtä välilyöntiä suuremmat välitykset näiden osuuksien kesken. Lisäksi tämä muutos sallii piilottaa kaikki tällaiset numero-osuudet ja rakentaa niiden tilalle tyylitiedostosta haettavat vastaavat laskurit. Tämän ratkaisun etu on, että kyseiset numeroarvot päivittyvät tällä tavoin numeroitujen osuuksien tullessa piilotetuiksi julkaisemisen jälkeen. Tämä sallii kyseisten julkaisujen osuuksien jälkikäteen ulos suodattamisen esimerkiksi siten, että kaikki vaihtoehdot sisältävästä HTML-julkaisusta kasataan jälkikäteen käyttäjien valintojen mukaisia PDF-tiedostoja ilman tarvetta laajemmalle järjestelmien yhteensovittamiselle.
Kuten aina, vastaamme kysymyksiin koskien parhaita keinoja saavuttaa tämän päivityksen tuomat hyödyt.