\definesystemconstant{SerifSemiBold}
\definesystemconstant{SerifSemiBoldItalic}

\definefontalternative[sbo]    
\definefontalternative[sbi]

\definebodyfont [default] [rm]
  [tf=Serif sa 1,
   bf=SerifBold sa 1,
   it=SerifItalic sa 1,
   sl=SerifSlanted sa 1,
   bi=SerifBoldItalic sa 1,
   bs=SerifBoldSlanted sa 1,
   sbo=SerifSemiBold sa 1,
   sbi=SerifSemiBoldItalic sa 1,
   sc=SerifCaps sa 1]

\definefontfeature[default]   [default] [mode=node,script=latn,kern=yes,liga=yes]
%\definefontfeature[smallcaps] [default] [smcp=yes,kern=yes,liga=yes] %% not supported
\definefontfeature[allalts]   [default] [aalt=yes] % provides superscript 1 2 3
\definefontfeature[denoms]    [default] [dnom=yes] % denominators
\definefontfeature[numerator] [default] [numr=yes] % numerators
\definefontfeature[superscrp] [default] [sups=yes] % superscript
\definefontfeature[diphthong] [default] [dpng=yes] % deprecated since otf v.1.4, seems to work for ‘ae’ -> ‘æ’ and ‘oe’ -> ‘œ’

\usetypescriptfile[type-bodoniof]
\usetypescript[bodoni-of]

\setupbodyfont[bodoni-of,12pt]

\def\testing[#1]{%
  \bgroup#1%
    abcdefghijklmnopqrstuvwxyz\par
    \centerline{\hfill ff ffi ffl fi fl ft ct Th\hfill}\par
    \hfill ABCDEFGHIJKLMNOPQRSTUVWXYZ\par
    %% Numbers -- sadly no text figures except in the SC variant‽
    0123456789\hfill
    {\addff{superscrp} 0123456789}\hfill
    %% Diacritics
    ěščřžýáíéóůúňďť\hfill
    ąśæåżźćóęł\par
    Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm
    Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz
    Ąą Ęę Łł Ćć Śś Żż Źź Ńń Ěě Šš Čč Řř Žž
    Áá Éé Íí Óó Úú Ůů Ďď Ľľ Ňň Ťť Ææ Åå Øø
    Āā Ēē Īī Ōō Ūū Ėė Įį Ǫǫ Ųų %% As expected, there’s no ‘ǫ’
    {\addff{diphthong} Ae ae AE Oe OE oe}
    \par
    %% Non-Alphabetical
    - -- --- „“ “” „” ‚‘ ‘’ ‚’ «»
    . ! ? ‽ , ; · … : ° + - = \lettertilde\space
    \letterpercent\ § \letterbackslash\ / \letterat\space
    \letterampersand\ \letterbar\ \letterunderscore\space
    ¶ * † ‡
    ™ © € \$ \#
    ( ) [ ] \{ \}
    \par
  \egroup
  \hairline%
  \blank[line]
}

\def\lem{%
  \language[pl]
  Jeżeli możemy mówić o~tym, co zaszło, i o tym, co nie zaszło,
  jakim sposobem moglibyśmy nie mówić o~tym, co zajść w~ogóle
  nie może?%
}

\def\mayr{%
  \language[en]
  Analysis differs from reduction by not claiming that the
  components of a system, revealed by analysis, provide complete
  information on all  the properties of a system, because
  analysis does not supply a full description of the interactions
  among the components of a system.  In spite of its being a
  highly heuristic method for the study of complex systems, it
  would be an error to refer to analysis as reduction.%
}

\startbuffer[jenomnadbrnemne]
  Na Capri sněžilo
  vlci ohrožují turecké vesnice
  Akropolis pod sněhem
  v~ulicích New Yorku půlmetrové závěje
  a setkání dvou cyklonů
  způsobilo sněhový uragán
  v~Moldávii

  Jenom nad Brnem ne
  Tam je pevná střecha z~popílku

  Závěje na té střeše
  trčí do výše jednoho kilometru
  a dokonce
  se ani nepřesouvají
\stopbuffer

\def\kundera{%
  \language[cz]
  \blank[line]
  \WORDS{Jenom nad Brnem ne}
  \blank[line]
  \startlines
  \getbuffer[jenomnadbrnemne]
  \stoplines
}

\def\partest[#1]{%
  \section{Ludvík Kundera napsal}
  {#1\kundera\par}

  \section{Ernst Mayr wrote}
  {#1\mayr\par}

  \section{Stanisław Lem napisał}
  {#1\lem \lem \lem}\par
}

\definecolumnset[two][n=2] \mainlanguage[en] \setuptolerance[horizontal,tolerant]

\setuphead[section][%
  number=yes,
  style=\tf,
  numberstyle=\bf,
  textstyle=\sbo,
]
\starttext

%\addff{smallcaps}
%\addff{allalts}
%\addff{denoms}
%\addff{numerator}
%\addff{superscrp}
%\addff{diphthong}

\testing[\rm]
\testing[\it]
\testing[\sc]
\testing[\sbo]
\testing[\bf]
\testing[\sbi]
\testing[\bi]

\page
\partest[\rm]
\partest[\it]
\partest[\sc]
\partest[\sbo]
\partest[\bf]
\partest[\sbi]
\partest[\bi]

\stoptext

