Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: aapo - 16.06.08 - klo:11.11

Otsikko: pieni bash-skripti: index.html:n generointi kansion tiedostoista
Kirjoitti: aapo - 16.06.08 - klo:11.11
Tässä pieni bash--skripti, joka generoida index.html:n kansion sisällöstä: (jos http-serverisi ei tee sitä lennosta itse). Huomioi pelkät html-tiedostot. Jos ajaa kahdesti peräkkäin, niin myös index.html:ään tulee linkki.
Koodia: [Valitse]
echo "<html><body>" > index.html
for i in $( ls *.html ); do
 echo -n "<a href=\"" >> index.html
 echo -n $i >> index.html
 echo -n "\">" >> index.html
 echo -n $i >> index.html
 echo -n "</a>" >> index.html
 echo  "<br>" >> index.html
done
echo "</body></html>" >> index.html
Otsikko: Vs: pieni bash-skripti: index.html:n generointi kansion tiedostoista
Kirjoitti: mgronber - 16.06.08 - klo:12.13
Nykyinen skriptisi linkittää index.html:n jo ensimmäisellä ajolla eikä vasta toisella. Jos halutaan että tiedostoon index.html ei linkata lainkaan niin se onnistuu lisäämällä for-silmukan alkuun alla oleva rivi.

Koodia: [Valitse]
    [ "$i" = "index.html" ] && continue

Generoitu html ei nykyisellään ole validia.
Otsikko: Vs: pieni bash-skripti: index.html:n generointi kansion tiedostoista
Kirjoitti: aapo - 18.06.08 - klo:15.14
Joo tosiaan, kiitos huomiosta.
Ehkä helpommalla pääsee kun pistää
for i in $( ls *.html | grep -v "index.html" ); do

Mitäs jää validista puuttumaan? Meinaatko meta juttuja, vai onko siinä joku ihan virhe?
Otsikko: Vs: pieni bash-skripti: index.html:n generointi kansion tiedostoista
Kirjoitti: mgronber - 18.06.08 - klo:17.13
Mitäs jää validista puuttumaan? Meinaatko meta juttuja, vai onko siinä joku ihan virhe?

No ainakin dokumenttityyppi ja header-osio. En muista kuuluiko header-osioon vielä joitakin pakollisia tagejakin.

W3C:n validaattorilla nuo kuitenkin selviävät joko lähettämällä (http://validator.w3.org/#validate_by_upload) generoitu tiedosto tai kopioimalla (http://validator.w3.org/#validate_by_input) generoidun tiedoston sisältö. Siitä sitten iteroimaan virheilmoitusten avulla kunnes tuotettu lopputulos on validia :)
Otsikko: Vs: pieni bash-skripti: index.html:n generointi kansion tiedostoista
Kirjoitti: SuperOscar - 18.06.08 - klo:18.53
En muista kuuluiko header-osioon vielä joitakin pakollisia tagejakin.

Käsittääkseni vain <title>...</title>.
Otsikko: Vs: pieni bash-skripti: index.html:n generointi kansion tiedostoista
Kirjoitti: aapo - 19.06.08 - klo:13.56
Nyt menee validaattorilta läpi. Kiitos kommenteista. Tässä tulee kokonainen skripti, joka on minusta jopa ihan hyödyllinen.
Pointtina on siis tehdä lähdekoodin online-selaaminen mahdollisimman helpoksi.
Bazaarista hakee aina uusimman version, tekee c-tiedostoista html:ää (ehkä headereistakin voisi tehdä) ja generoi indexin.
Lopputuloksen voi nähdä osoitteessa: http://lauta.dyndns.org/aaplot_src/index.html
(itse tuosta projektista aloitan kohta erillisen viestiketjun)

Koodia: [Valitse]
rm *.c
rm *.html
cd aaplot
bzr merge
cp *.c ../
cd ..

source-highlight *.c

echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">' >>index.html
echo "<html>" >> index.html
echo "<title>aaplot higlighted sources</title>" >> index.html
echo "<body>" >> index.html
echo "<h1>Highlighted sources of project aaplot</h1>" >> index.html
echo '<a href="http://code.google.com/p/aaplot">Project Home: Manuals/API/etc</a><hr>'   >>index.html

for i in $( ls *.html | grep -v "index.html"); do
 echo -n "<a href=\"" >> index.html
 echo -n $i >> index.html
 echo -n "\">" >> index.html
 echo -n $i >> index.html
 echo -n "</a>" >> index.html
 echo  "<br>" >> index.html
done

echo "<hr>" >> index.html
echo '<p>    <a href="http://validator.w3.org/check?uri=referer"><img'   >>index.html
echo '        src="http://www.w3.org/Icons/valid-html32"'   >>index.html
echo '         height="31" width="88"></a></p>' >>index.html

echo "</body></html>" >> index.html

Otsikko: Vs: pieni bash-skripti: index.html:n generointi kansion tiedostoista
Kirjoitti: mgronber - 19.06.08 - klo:14.15
Pitkät yhtenäiset pätkät olisi ehkä parempi tulostaa here-documents ominaisuuden avulla.

Koodia: [Valitse]
cat <<EOF >index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<title>aaplot higlighted sources</title>
<body>
<h1>Highlighted sources of project aaplot</h1>
<a href="http://code.google.com/p/aaplot">Project Home: Manuals/API/etc</a><hr>
EOF

Mielestäni muuten tuhoat skriptisi alussa lähdekooditiedostot turhaan.
Otsikko: Vs: pieni bash-skripti: index.html:n generointi kansion tiedostoista
Kirjoitti: Mistofelees - 23.06.08 - klo:10.20
Tässä pieni bash--skripti, joka generoida index.html:n kansion sisällöstä: (jos http-serverisi ei tee sitä lennosta itse). Huomioi pelkät html-tiedostot. Jos ajaa kahdesti peräkkäin, niin myös index.html:ään tulee linkki.

Pieni on kaunista.

Itse tein hieman laajemman kokonaisuuden kyllästyttyäni Apachen hieman aneemiseen dokumenttisivustoon. Tein Perl scriptin, joka generoi kuva- ja dokumenttiarkistoa lennosta. Materiaali viedään serverille samballa ja scripti generoi tarvittavat parametritiedostot lennossa. Hakemistoihin, tiedostoihin ja kuviin voi liittää selitetekstit. Ohjelma näyttää thumbsit ja exifit.
Paketti koostuu kahdesta tiedostosta: siemenenä oleva werkkosivu index.shtml, sekä yksi perl-scripti, jota kutsutaan 'rekursiivisesti' (hipsuissa, koska kyseessä ei ole oikea rekursio.)
Mukana on alkeellinen salasanasuojaus, jottei kuvatekstejä pääse muokkaamaan kuin halutuilta koneilta.

http://ptm2.cc.utu.fi/~ptmusta/kuvat/

Olisin ilahtunut, jos joku olisi kiinnostunut asiasta sen verran, että tekisi tästä vielä fiksumman version yleiseen jakeluun. Itselle riitti, että sain omat valokuva-arkistomme järjestykseen molemmissa servereissämme.