Introduktion till programmering

Relevanta dokument
Webbens grundbegrepp. Introduktion till programmering. Ytterligare exempel. Exempel på webbsida. Föreläsning 5

Arbetsmaterial HTML pass 1 - Grunder

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

Introducerande övningar i HTML

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

WEBBUTVECKLING Kursplanering

Språk för webben introduk4on 4ll HTML

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML

Webbdesign vt Innehållsförteckning

Övning (X)HTML 2. Sidan 1 av

Webbdesign vt Innehållsförteckning

ORDLISTA WEBBDESIGN 100P

Repetition. Hypertext. Internet HTTP. Server och klient Text försedd med länkar till andra texter. Många sammankopplade nät

Repetition. Hypertext. Internet HTTP. Server och klient Föreläsning 2. Text försedd med länkar till andra texter. Många sammankopplade nät

F02 En första sida. Dagens agenda

En bortsprungen katt

Mer information om RefWorks, andra referenshanteringsprogram och hur man refererar hittar du på Linköpings universitetsbiblioteks webbsidor.

Användarmanual för Content tool version 7.5

Internet A. HTML Grunder Maximilien Chiang 1

HTML. Introduktion till HyperText Markup Language

Introduktion HTML och PHP 732G16 Databaser design och programmering

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka

Idag. Webben, HTML och CSS. Live demo. Webbens funktion

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Labora&on 3 HTML och struktur övningar/uppgi:er

Webbserver och HTML-sidor i E1000 KI

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Sidan kommer inte läggas upp någonstans utan du redovisar den för mig på något handledningstillfälle.

Manual för visionutv.net Redigera

Labora&on 7 Syfte med laborationen:

Lektion 2 - CSS. CSS - Fortsätt så här

ATT GÖRA WEBBSIDOR. Frivillig labb

Inför prov 1 i webbdesign

Hämta via databaser Pröva några olika databaser. Se Hämta referenser från databaser.

Labora&on 2 HTML och validering övningar/uppgi:er

Du kan själv följa med i denna steg-för-steg guide i din texteditor.

Internets historia Tillämpningar

Övning 1 Vi börjar med en vanlig html-fil där html används för både innehåll och utseende:

Laboration med Internet och HTML

Sjukhusbiblioteket i Karlstad, september 2012, Modifierad av Linköpings universitetsbibliotek tisdag den 11 december 2018

Guide till RefWorks Skapa ett RefWorks-konto Under Citera och referera > RefWorks Hjälp funktioner i RefWorks Help Tutorial Help

03/12/2015. Logga in på: b.socrative.com eller ladda ner appen

Tabeller. Lektion 7. en tabellrubrikcell som centrerad och i fetstil.

Labora&on 4 CSS och validering övningar/uppgi9er

HTML och CSS. Eric Elfving Institutionen för datavetenskap. 18 augusti 2015

IT-körkort för språklärare. Modul 2: Blogg

Del 1 och 2 HTML/CSS. Webbutveckling Laboration 1 Nicklas Bostedt

Skapa egna övningar med ProProfs

Nätet. Uppgiften. Nivå

Idag. Webben och HTML. Webbens funk3on. URL och websidor. Moment F om webben och HTML startar nu

12 Webb och kurshemsidor

Hyperlänkar. I HTML skapar man en hyperlänk med taggen <a> </a>, som är en förkortning av ordet ankare, på (engelska anchor).

WEBDESIGN A - DTR 1210

Användarmanual WebNailer. 19 januari 2004

HTML och CSS. Eric Elfving Institutionen för Datavetenskap (IDA)

WEBDESIGN A - DTR 1210

Labora&on 4 CSS och validering samt fråga D övningar/uppgi?er

Föreläsning 4. CSS Stilmallar för webben

Karusell med länkade omslagsbilder

I den här övningen tränar du på att göra olika programfönster. Övningarna går att göra på egen hand.

En grundkurs i hemsidor och hur de är uppbyggda

CSS-övningar. 1. Grunder

Webbpublicering. Teknikintroduktion 1 Jody Foo (jodfo@ida.liu.se)

Statistik från webbplatser

Bevaka vetenskapliga tidskrifter med hjälp av RSS

Strukturering med XML och DTD

Hämta via databaser Se Hämta referenser från databaser.

Arg-administratörens guide till Umbraco v 1.2.1

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

Wordpress och Sociala medier av Sanna Ohlander Guide till hur du skapar och förändrar inlägg och sidor på staffanstorp.se

BaraTrav Prenumeration och Installation Version 1.3.4

TNMK30 - Elektronisk publicering

VERKTYGSFÄLTET I ARTIKELEDITORN

Manual för Typo3 version 4.2

Manual. Anpassad för CMS Made Simple version 1.9.x (uppdaterad ) Birger Eriksson webblots.se

KARLSTADS UNIVERSITETSBIBLIOTEK

Datakommunika,on på Internet

20/01/2016. html och css

Mittuniversitetet ITM Telefon RSS. Laborationskompendium för syndikering på Internet. Detta exemplar tillhör:

XML. Extensible Markup Language

Statistik från webbplatser

ComputeIT.se. Manual. Installation. Testa sidorna. Anpassa sökfunktionen

Bilder. Bilder och bildformat

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Webbkurs för distriktsansvariga. Stockholm den 7 och 13 september 2011

Referenshantering med Zotero 1

Wordpress och Sociala medier av Sanna Ohlander Guide till hur du skapar och förändrar inlägg och sidor på staffanstorp.se

Labb 3: ASP.NET 4.5 Anpassningar av användargränssnittet: Master Pages, Teman, och Kontroller

Kommunikation. Dator med webbläsare Förfrågan: Webserver. Returnerar HTML-kod

HUR MAN SKAPAR EN SÖKMOTORVÄNLIG LANDNINGSSIDA.

Digitalt lärande och programmering i klassrummet

Struktur & Layout med CSS

F02 HTML. Föreläsning 2, HT2013 HTML. Kurser: Klientbaserad Webbutveckling 1DV435. Johan Leitet

Kort om World Wide Web (webben)

Blogga med Wordpress

Användarmanual för trvff.se

Att använda laget.se

version 2.5 CONTENTO SVENSKA AB Introduktion till Kursbyggarverktyg

Transkript:

Introduktion till programmering Föreläsning 5 Programmering av webbsidor.

Webbens grundbegrepp HTML HTML (HyperText Markup Language) är det språk som används för att skriva webbsidor. HyperText: text med referenser (länkar) till andra dokument. Markup: taggar som strukturerar texten. Webbläsare En webbläsare (Firefox, Internet Explorer, Safari,... ) är ett program som kan visa HTML-dokument genom att tolka taggarna. Webbserver, HTTP En webbserver är ett program som på begäran förmedlar dokument från den egna datorn till webbläsare anslutna till internet. HTTP (HyperText Transfer Protocol) är reglerna för hur webbläsare och webbserver samarbetar.

Exempel på webbsida <html> <head> <title>fönstertitel</title> </head> <body> <h1>en rubrik</h1> <p> Text som kan vara <it>kursiv</it>, <b>fet</b>, <font color="red">röd</font> och innehålla länkar till <a href="www.chalmers.se"> webbsidor</a>, bilder (nedan) och annat.</p> <p> <img src="didno.jpg" width="350"></p> <h3>mindre rubrik</h3> </body> </html>

Ytterligare exempel Webbläsaren kan visa HTML-källan Genom att i webbläsaren välja View Page Source kan man läsa HTML-texten. Ett par exempel: Sidan från föregående bild Ett fotoalbum Uppgifterna till övning 4 En observation och en slutsats HTML-kod är ordrik, ofta repetitiv och det är lätt att göra (slarv)fel. Vi ska skriva Haskell-program som genererar HTML! Detta är speciellt lönande för dokument med stor andel taggar (t ex fotoalbumet).

Ett bibliotek för att skapa HTML-filer Grunden En tagg består av text mellan < och >. Två funktioner för att skapa en tagg och motsvarande sluttagg: tag :: String -> String tag t = "<" ++ t ++ ">" endtag :: String -> String endtag t = tag ("/" ++ t) De flesta HTML-elementen skapas genom att omsluta mindre element med en tagg och dess sluttagg: tagged :: String -> HTML -> HTML tagged t h = tag t ++ h ++ endtag t Typen HTML är här en synonym för String: type HTML = String

Fler definitioner ur biblioteket MkHTML para :: HTML -> HTML para h = tagged "p" h header :: Int -> HTML -> HTML header i h = tagged ("h" ++ show i) h bold :: HTML -> HTML bold h = tagged "b" h italic :: HTML -> HTML italic h = tagged "i" h text :: String -> HTML text s = s sequ :: [HTML] -> HTML sequ = unlines

Attribut Taggar kan vara mer komplexa En tagg kan innehålla attribut, som ger extra information. En länk har URL:en ( webbadressen ) som attribut: <a href="http://www.haskell.org">haskell Home</a> En bild har både URL:en till bildfilen och en storlek som attribut: <img src="pictures/img_5091.jpg" width="128"> Obs 1: Sluttaggar har inga attribut. Obs 2: En bild har ingen sluttagg och inget inneslutet element.

Generering av attribut attrdef :: (String,String) -> String attrdef p = fst p ++ "=" ++ show (snd p) attrtag :: String -> [(String,String)] -> String attrtag t attrs = tag (t ++ " " ++ unwords [attrdef p p <- attrs]) attrtagged :: String -> [(String,String)] -> HTML -> HTML attrtagged t attrs h = attrtag t attrs ++ h ++ endtag t link :: String -> HTML -> HTML link url txt = attrtagged "a" [("href",url)] txt image :: String -> Int -> HTML image url sz = attrtag "img" [("src",url),("width", show sz)]

Fullständiga HTML-dokument Typisk struktur <html> <head> <title> Titeln </title> </head> <body> Innehållet </body> </html> Funktioner i biblioteket html :: String -> HTML -> HTML html hd bod = tagged "html" (sequ [headtitle (text hd), body bod]) headtitle :: String -> HTML headtitle s = tagged "head" (tagged "title" s) body :: HTML -> HTML body h = tagged "body" h

Ett minimalt exempel I HTML <html> <head> <title> Hello </title> </head> <body> Hello, World! </body> </html> I Haskell import MkHTML html "Hello" (text "Hello, World!") Vad har vi vunnit? Mindre att skriva. Mindre risk för slarvfel (felstavade taggar, glömd sluttagg... ).

Första exemplet igen <html> <head> <title>fönstertitel</title> </head> <body> <h1>en rubrik</h1> <p> Text som kan vara <it>kursiv</it>, <b>fet</b>, <font color="red">röd</font> och innehålla länkar till <a href="www.chalmers.se"> webbsidor</a>, bilder (nedan) och annat.</p> <p> <img src="didno.jpg" width="350"></p> <h3>mindre rubrik</h3> </body> </html> html "Fönstertitel" (sequ [ header 1 "En rubrik", para (sequ [ text "Text som kan vara", italic "kursiv", bold "fet", colored "red" "röd", text "och innehålla länkar link "http://www.chalmers.s text "bilder (nedan) och an para (image "didno.jpg" 350) header 3 "Lite mindre titel" ]) Inte mycket vunnet i detta exampel!

Tabeller i HTML En enkel tabell A1 A2 B1 B2 A3 B3 HTML-koden <table border="1"> <tr> <td>a1</td><td>a2</td><td>a3</td> </tr> <tr> <td>b1</td><td>b2</td><td>b3</td> </tr> </table> Önskad Haskell-kod table [["A1","A2","A3"],["B1","B2","B3"]] En tabell är en lista av listor. Den yttre listan består av raderna, de inre av cellerna.

Biblioteksfunktion för tabeller table :: [[HTML]] -> HTML table rows = attrtagged "table" [("border","1")] (sequ [ tablerow row row <- rows]) tablerow :: [HTML] -> HTML tablerow cells = tagged "tr" (sequ [tagged "td" cell cell <- cells])

Fotoalbumet En förenklad version Fotoalbumet är en följd bilder där varje bild är en miniversion (eng. thumbnail ) av den riktiga, fullstora bilden; varje bild är en länk till den riktiga bilden. Om listan av bildernas URL:er är pics, kan vi generera albumet med html "Pictures" (sequ [ link pic (image pic 128) pic <- pics ]) Detta är en förenklad version; antalet bilder per rad beror på fönstrets storlek. Resultatet finns här. En bättre version skulle bygga en tabell.

Hur skapar man pics? Bilderna finns i katalogen pictures > ls pictures IMG_4922.jpg IMG_4956.jpg IMG_4999.jpg IMG_5043.jpg IMG_5091.jpg IMG_4935.jpg IMG_4957.jpg IMG_5005.jpg IMG_5049.jpg IMG_5099.jpg IMG_4944.jpg IMG_4966.jpg IMG_5029.jpg IMG_5059.jpg IMG_5106.jpg IMG_4950.jpg IMG_4971.jpg IMG_5036.jpg IMG_5072.jpg IMG_5111.jpg IMG_4955.jpg IMG_4974.jpg IMG_5037.jpg IMG_5081.jpg IMG_5112.jpg Vi vill ha pics = [ "pictures/" ++ p p <- ps] ps = ["IMG_4922.jpg","IMG_4956.jpg","IMG_4999.jpg","IMG_5043.jpg",... ] Man kan klippa och klistra i en editor eller skriva ett Unixfilter som pipas med ls eller....

Generering av Google-sökningar Om man går till Google och slår in ett sökord, t ex haskell, öppnas en webbsida med URL:en http://www.google.se/search?&q=haskell Vi kan gissa funktionerna googledtext s = unwords [googled w w <- words s] googled s = link ("http://www.google.se/search?&q=" ++ s) s Som exempel skapar html "Google bakom länkarna" (googledtext "Varje ord som klickas skickas till Google") detta dokument.

Sammanfattning Vad har vi gjort idag? Vi har definierat ett bibliotek för att programmera webbsidor. Med hjälp av det har vi fått ett domänspecifikt språk för denna tillämpning. Haskell är särskilt lämpligt för att bygga sådana bibliotek. Vad har vi gjort i den här kursen? Ni har lärt er enkel hantering av Linuxdatorer. Ni kommer att fortsätta att utvecklas som Linuxanvändare under lång tid. Ni har sett exempel på hur Haskell kan användas för problemlösning. Ni har också sett några preludfunktioner och en hel del av Haskells syntax. Nästa vecka börjar en mer systematisk genomgång.