Wikipedia:EasyTimeline

{{update}}{{Accessibility dispute|reason=Text is way too small and distorted to be legible at default size}}

{{information page}}

As the saying goes: a picture often tells more than a thousand words. This is certainly true for graphical timelines. A detailed listing of events and dates in tabular form may offer the reader a lot of specifics, but may fail to provide an overview, a grand perspective.

From June 1, 2004 there is a wiki way to compose graphical time charts offline.

Syntax description at Help:EasyTimeline syntax.

You can also use this tool outside Wikipedia and locally, see the [http://infodisiac.com/Wikipedia/EasyTimeline/Introduction.htm EasyTimeline project site], or activate it on other MediaWiki installations, see EasyTimeline activation.

The original EasyTimeline tool hasn't been updated since 2004 so you may get errors on current environments. Fortunately there exists [https://phabricator.wikimedia.org/project/profile/140/ a version on Wikimedia's Phabricator], that fixes some of the bugs and [https://phabricator.wikimedia.org/diffusion/ETLN/browse/master/scripts/ the last update is from August 2024].

For an overview of all charts prepared with EasyTimeline on all wikipedias (images and code) see [http://en.wikipedia.org/wikistats/EN/TimelinesIndex.htm EasyTimeline Index], refreshed weekly as part of the statistics job. (May be down, try the [https://web.archive.org/web/20060830005905/http://stats.wikimedia.org/EN/TimelinesEN.htm#8a540f480ca6432fa99496992da07f32 archive].)

Accessibility

Text is too small and distorted to be legible at default size.

Be sure that the text of the article also conveys all the relevant information, or links to an article which does, so that it is available to people who cannot see the image. See WP:ACCESS for more.

Charts examples

Two simple examples of what is possible. For more extensive examples see Template:Timeline WW II - Pacific Theatre, Template:Timeline_History_of_Computing, :de:Template:Zeitleiste Tour-de-France-Sieger.

A nice example of a diagram that is not a timeline in the general sense is Vocal and instrumental pitch ranges.

ImageSize = width:160 height:550

PlotArea = width:50 height:530 left:50 bottom:10

DateFormat = yyyy

Period = from:1919 till:1991

TimeAxis = orientation:vertical

ScaleMajor = unit:year increment:5 start:1920

  1. there is no automatic collision detection,
  2. so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=

bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

from:start till:1922 shift:($dx,15) text:Vladimir~Ilyich~Lenin

from:1922 till:1953 shift:($dx,5) text:Josef Stalin

from:1953 till:1964 shift:($dx,5) text:Nikita~Khrushchev

from:1964 till:1982 shift:($dx,5) text:Leonid~Brezhnev

from:1982 till:1984 shift:($dx,-12) text:Yuri~Andropov

from:1984 till:1985 shift:($dx,4) text:Konstantin~Chernenko fontsize:XS

from:1985 till:end shift:($dx,10) text:Mikhail~Gorbachev

  

ImageSize = width:800 height:100

PlotArea = width:720 height:75 left:65 bottom:20

AlignBars = justify

Colors =

id:epoch value:rgb(0.7,0.7,1) # light yellow

id:period value:rgb(1,0.7,0.7) # light red

id:age value:rgb(0.7,1,0.7) # light green

id:era value:rgb(1,1,0.7) # light blue

id:eon value:rgb(1,0.7,1) # light purple

id:black value:black

Period = from:-4500 till:0

TimeAxis = orientation:horizontal

ScaleMajor = unit:year increment:500 start:-4500

ScaleMinor = unit:year increment:100 start:-4500

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

PlotData=

align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

bar:eon color:eon

at: 0 align:right $markred

at: -545 align:left $markred

from: -545 till: 0 text:Phanerozoic

from:-4500 till: 0 text:Precambrian

bar:era color:era

from: -64.3 till: 0 text:C~z shift:(0,1.5)

from: -251.1 till: -64.3 text:Meso~zoic shift:(0,1.5)

from: -545 till: -251.1 text:Paleo~zoic shift:(0,1.5)

from:-4500 till: -545 text:Proterozoic

bar:period color:period

fontsize:6

from: -1.6 till: 0

from: -64.3 till: -1.6

from: -146 till: -64.3

from: -208 till: -146

from: -251.1 till: -208

from: -286 till: -251.1

from: -360 till: -286

from: -408.5 till: -360

from: -443.5 till: -408.5

from: -490 till: -443.5

from: -545 till: -490

fontsize:8

from: -900 till: -545 text:Neoprote-~rozoic shift:(0,1.8)

from:-1600 till: -900 text:Mesoproterozoic

from:-2500 till: -1600 text:Paleoproterozoic

from:-3800 till: -2500 text:Archaean

from: start till: -3800 text:Hadean

ImageSize = width:800 height:120

PlotArea = width:720 height:95 left:65 bottom:20

AlignBars = justify

Colors =

id:epoch value:rgb(0.7,0.7,1) # light yellow

id:period value:rgb(1,0.7,0.7) # light red

id:age value:rgb(0.7,1,0.7) # light green

id:era value:rgb(1,1,0.7) # light blue

id:eon value:rgb(1,0.7,1) # light purple

id:filler value:gray(0.8) # background bar

id:black value:black

Period = from:-545 till:0

TimeAxis = orientation:horizontal

ScaleMajor = unit:year increment:100 start:-500

ScaleMinor = unit:year increment:10 start:-540

Define $markred = text:"*" textcolor:red shift:(0,3) fontsize:10

Define $markgreen = text:"*" textcolor:green shift:(0,3) fontsize:10

PlotData=

align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

bar:eon color:eon

at: 0 align:right $markred

at: -545 align:left $markred

from: -545 till: 0 text:Phanerozoic

bar:era color:era

at: 0 align:right $markgreen

at: -64.3 align:left $markgreen

from: -64.3 till: 0 text:Cenozoic

from: -251.1 till: -64.3 text:Mesozoic

from: -545 till: -251.1 text:Paleozoic

bar:period color:period fontsize:8

from: -1.6 till: 0

from: -64.3 till: -1.6 text:Tertiary

from: -146 till: -64.3 text:Cretaceous

from: -208 till: -146 text:Jurassic

from: -251.1 till: -208 text:Triassic

from: -286 till: -251.1 text:Permian

from: -360 till: -286 text:Carboniferous

from: -408.5 till: -360 text:Devonian

from: -443.5 till: -408.5 text:Silurian

from: -490 till: -443.5 text:Ordovician

from: -545 till: -490 text:Cambrian

bar:age color:age fontsize:6

from: start till: end

from: -23 till: -1.6 text:Neo-~gene shift:(0,0.5)

from: -64.3 till: -23 text:Paleo~gene shift:(0,0.5)

from: -286 till: -251.1 # mark end of Paleozoic

from: -325 till: -286 text:Pennsyl-~vanian shift:(0,0.5)

from: -360 till: -325 text:Missis-~sippian shift:(0,0.5)

ImageSize = width:800 height:120

PlotArea = width:720 height:95 left:65 bottom:20

AlignBars = justify

Colors =

id:epoch value:rgb(0.7,0.7,1) # light yellow

id:period value:rgb(1,0.7,0.7) # light red

id:age value:rgb(0.7,1,0.7) # light green

id:era value:rgb(1,1,0.7) # light blue

id:black value:black

Period = from:-65.5 till:0

TimeAxis = orientation:horizontal

ScaleMajor = unit:year increment:10 start:-60

ScaleMinor = unit:year increment:1 start:-65

Define $markgreen = text:"*" textcolor:green shift:(0,3) fontsize:10

PlotData=

align:center textcolor:black fontsize:8 mark:(line,black) width:25 shift:(0,-5)

bar:era color:era

at: 0 align:right $markgreen

at: start align:left $markgreen

from:start till: 0 text:Cenozoic

bar:period color:period

from: -1.6 till: 0 text:Qua~ter~nary fontsize:6 align:left shift:(-7,5)

from:start till: -1.6 text:Tertiary

bar:age color:age

from: -1.6 till: 0

from: -23 till: -1.6 text:Neogene

from:start till: -23 text:Paleogene

bar:epoch color:epoch

from: -0.1 till: 0

from: -1.6 till: -0.1 text:P

from: -5 till: -1.6 text:Plio~cene shift:(0,1) fontsize:6

from:-23 till: -5 text:Miocene

from:-38 till:-23 text:Oligocene

from:-55 till:-38 text:Eocene

from:start till:-55 text:Paleocene

Code example

Just to show you that the script syntax is reasonably intuitive:

here is the script for the image to the left: Soviet Leaders.

  1. All measures are in pixels

ImageSize = width:160 height:550

PlotArea = left:50 right:0 bottom:10 top:10

AlignBars = justify

DateFormat = yyyy

Period = from:1919 till:1991

TimeAxis = orientation:vertical

ScaleMajor = unit:year increment:5 start:1920

  1. there is no automatic collision detection,
  2. so shift texts up or down manually to avoid overlap

Define $dx = 25 # shift text to right side of bar

PlotData=

bar:Leaders color:red width:25 mark:(line,white) align:left fontsize:S

from:start till:1922 shift:($dx,15) text:Vladimir~Ilyich~Lenin

from:1922 till:1953 shift:($dx,5) text:Josef~Stalin

from:1953 till:1964 shift:($dx,5) text:Nikita~Khrushchev

from:1964 till:1982 shift:($dx,5) text:Leonid~Brezhnev

from:1982 till:1984 shift:($dx,-12) text:Yuri~Andropov

from:1984 till:1985 shift:($dx,4) text:Konstantin~Chernenko fontsize:XS

from:1985 till:end shift:($dx,10) text:Mikhail~Gorbachev

Double and single brackets can be used like on wikipedia, language prefix is possible, e.g. {{elc|de:foo|more about foo}}. Single brackets for external links are also supported.

Great Timelines Elsewhere

Here are two great sites that may serve as inspiration, it would be very easy to recreate most of those timelines verbatim and with roughly similar layout with EasyTimeline (not yet with images but that may change), but I'm afraid that would be 'not done'.

  • [http://www.hyperhistory.com/online_n2/History_n2/a.html Hyperhistory] (e.g. click on button 'people' left, then on 'special lifelines', right.
  • I hope we will have a set like [http://chaos1.hypermart.net/fullsize.htm] in a years time (click on full size image for any map), possibly even with images. The main effort will be to gather all info without snatching everything from here (most of these maps are based exclusively on data from Brittanica).

Unicode

EasyTimeline does not yet support Unicode. This will be added later. So better not use it on Unicode enabled Wikipedias yet.

Aug 2004: Minimal UTF-8 support has been added, meaning that EasyTimeline now recognizes UTF-8 encoded characters. However only extended ASCII accented characters can be shown and not even all of them (rendering package Ploticus has an incomplete ASCII set in its internal font). So full Unicode support will have to wait until external font support has been added (planned late in 2004, other Wikipedia projects take priority right now).

Tips

For first time users EasyTimeline may not seem that easy at all. As with all script languages it takes some getting used to. Also the syntax description may be a bit bewildering due to its sheer size. Fortunately many elements of the script language are optional.

The 'Easy' in EasyTimeline conveys the message that once a timeline exists it is not so hard to understand, enhance or correct. Also translating for use on another wikipedia it is pretty straightforward.

Tips:

  • Put each timeline on a separate Template page: this makes it easier to edit, faster to preview, possible to include it in several pages
  • Feel free to ask Erik Zachte (the author of EasyTime) for help or advice.

See also