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

Relevanta dokument
Introduktion till programmering

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

Introducerande övningar i HTML

Arbetsmaterial HTML pass 1 - Grunder

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

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

WEBBUTVECKLING Kursplanering

Webbdesign vt Innehållsförteckning

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

Webbdesign vt Innehållsförteckning

Övning (X)HTML 2. Sidan 1 av

Språk för webben introduk4on 4ll HTML

Inför prov 1 i webbdesign

Introduktion HTML och PHP 732G16 Databaser design och programmering

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

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

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

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

Laboration med Internet och HTML

En bortsprungen katt

12 Webb och kurshemsidor

HTML. Introduktion till HyperText Markup Language

Användarmanual för Content tool version 7.5

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

F02 En första sida. Dagens agenda

ORDLISTA WEBBDESIGN 100P

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

Manual för visionutv.net Redigera

Internet A. HTML Grunder Maximilien Chiang 1

WEBDESIGN A - DTR 1210

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

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

Integrerad i egen cup-portal Sid 1

Internets historia Tillämpningar

CSS-övningar. 1. Grunder

ATT GÖRA WEBBSIDOR. Frivillig labb

WEBDESIGN A - DTR 1210

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

Introduktion till programmering. Standardfunktioner. Vad används datorer till? Standardfunktioner. Föreläsning 2. Prelude. $ ghci...

Nätet. Uppgiften. Nivå

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

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

VERKTYGSFÄLTET I ARTIKELEDITORN

Webbserver och HTML-sidor i E1000 KI

HUR MAN SKAPAR EN SÖKMOTORVÄNLIG LANDNINGSSIDA.

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

Labora&on 7 Syfte med laborationen:

Arg-administratörens guide till Umbraco v 1.2.1

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

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

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

Skapa egna övningar med ProProfs

En grundkurs i hemsidor och hur de är uppbyggda

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

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

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

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

Bilder. Bilder och bildformat

Bevaka vetenskapliga tidskrifter med hjälp av RSS

Labora&on 4 CSS och validering övningar/uppgi9er

Att arbeta med. Müfit Kiper

HTML5 Semantic. Informationen kommer från w3schools.com. En semantisk elementet beskriver tydligt dess betydelse för både webbläsaren och utvecklaren.

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

Att styla webbsidor. Nivå. Uppgiften

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

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

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

Statistik från webbplatser

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

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

Manual för din hemsida

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

Användarmanual WebNailer. 19 januari 2004

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

Användarmanual för Hemsida

TNMK30 - Elektronisk publicering

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

HTML. Laborationskompendium i konstruktion av webbsidor. Detta exemplar tillhör: VT Mitthögskolan ITM Telefon

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

Lägga till bild i e- handeln

aktivitetsfältet Mozilla Firefox Internet Explorer Google Chrome Safari

Kort om World Wide Web (webben)


Webbteknik för ingenjörer

Manual för Typo3 version 4.2

20/01/2016. html och css

Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4

Att använda laget.se

XML. Extensible Markup Language

KARLSTADS UNIVERSITETSBIBLIOTEK

Dokumentmallar i praktiken, Nyps

Statistik från webbplatser

Strukturering med XML och DTD

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

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

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

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

Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

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 <title>fönstertitel</title> <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> 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 Generering av 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. 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 Ett minimalt exempel Typisk struktur <title> Titeln </title> Innehållet 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 I HTML <title> Hello </title> Hello, World! 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 Tabeller i HTML <title>fönstertitel</title> <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> 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 till", link "http://www.chalmers.se" "webbsidor", text "bilder (nedan) och annat."]), para (image "didno.jpg" 350), header 3 "Lite mindre titel" ]) Inte mycket vunnet i detta exampel! En enkel tabell A1 B1 A2 B2 A3 B3 Önskad Haskell-kod table [["A1","A2","A3"],["B1","B2","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> En tabell är en lista av listor. Den yttre listan består av raderna, de inre av cellerna.

Biblioteksfunktion för tabeller Fotoalbumet 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]) 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.