From f60a4278a286cf37969015442701ac950858a9cb Mon Sep 17 00:00:00 2001 From: Tully Foote Date: Tue, 10 Mar 2020 15:43:31 -0700 Subject: [PATCH] clean up https resources (#223) * Switch self referencing urls to https * Integrate all css locally so this is self contained instead of hot loading it from another site (the old wiki redirect based urls...) Also put all css into a subdirectory * remove unused code and stylesheet Signed-off-by: Tully Foote --- Makefile | 2 +- css/common.css | 565 +++++++++++++++++++++++++++++++ mermaid.css => css/mermaid.css | 0 css/msie.css | 40 +++ css/print.css | 52 +++ rep.css => css/rep.css | 0 css/screen.css | 431 +++++++++++++++++++++++ docutils.conf | 2 +- docutils_transforms_reps.py | 4 +- docutils_writers_rep/__init__.py | 6 +- manifest.xml | 2 +- pyramid-rep-template | 2 +- rep-0001.rst | 2 +- rep-0002.rst | 4 +- rep-0012.rst | 12 +- rep-0100.rst | 2 +- rep-0101.rst | 2 +- rep-0108.rst | 2 +- rep-0113.rst | 2 +- rep-0121.rst | 2 +- rep-0122.rst | 10 +- rep-0123.rst | 2 +- rep-0124.rst | 4 +- rep-0125.rst | 8 +- rep-0127.rst | 2 +- rep-0128.rst | 2 +- rep-0131.rst | 4 +- rep-0133.rst | 2 +- rep-0137.rst | 10 +- rep-0140.rst | 4 +- rep-0141.rst | 10 +- rep-0142.rst | 2 +- rep-0149.rst | 8 +- rep-0150.rst | 2 +- rep-html-template | 10 +- rep2html.py | 32 +- style.css | 19 -- 37 files changed, 1154 insertions(+), 111 deletions(-) create mode 100644 css/common.css rename mermaid.css => css/mermaid.css (100%) create mode 100644 css/msie.css create mode 100644 css/print.css rename rep.css => css/rep.css (100%) create mode 100644 css/screen.css delete mode 100644 style.css diff --git a/Makefile b/Makefile index f4818ab2c..0973592cb 100644 --- a/Makefile +++ b/Makefile @@ -30,4 +30,4 @@ clean: -rm rep-0000.rst upload: all - rsync -r README.txt *.html mermaid.css mermaid.js rep.css style.css rep-0000.rst $(SUBDIRS) rosbot@ros.osuosl.org:/var/www/www.ros.org/reps + rsync -r README.txt *.html mermaid.js css rep-0000.rst $(SUBDIRS) rosbot@ros.osuosl.org:/var/www/www.ros.org/reps diff --git a/css/common.css b/css/common.css new file mode 100644 index 000000000..315c61cf6 --- /dev/null +++ b/css/common.css @@ -0,0 +1,565 @@ +/* common.css - Copied from ROS wiki + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ + +html { + background-color: white; + color: black; + font-family: Helvetica, Verdana, Arial, Lucida Grande, sans-serif; + font-size: 11pt; +} + +body { + margin: 0; +} + +/* Links */ + +a {color: #2b7fcf;} +a:visited {color: #2b7fcf;} +a.nonexistent:visited, a.badinterwiki:visited, +a.nonexistent, a.badinterwiki {color: gray;} + +a.www:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.http:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.https:before {content: url(../img/moin-www.png); margin: 0 0.2em;} +a.file:before {content: url(../img/moin-ftp.png); margin: 0 0.2em;} +a.ftp:before {content: url(../img/moin-ftp.png); margin: 0 0.2em;} +a.nntp:before {content: url(../img/moin-news.png); margin: 0 0.2em;} +a.news:before {content: url(../img/moin-news.png); margin: 0 0.2em;} +a.telnet:before, a.ssh:before {content: url(../img/moin-telnet.png); margin: 0 0.2em;} +a.irc:before, a.ircs:before {content: url(../img/moin-telnet.png); margin: 0 0.2em;} +a.mailto:before {content: url(../img/moin-email.png); margin: 0 0.2em;} +a.attachment:before {content: url(../img/moin-attach.png); margin: 0 0.2em;} +a.badinterwiki:before {content: url(../img/moin-inter.png); margin: 0 0.2em;} +a.interwiki:before {content: url(../img/moin-inter.png); margin: 0 0.2em;} + + +li p { + margin: .25em 0; +} + +li.gap { + margin-top: 0.5em; +} + +dt { + margin-top: 0.5em; + font-weight: bold; +} + +dd { + margin-top: 0; + margin-bottom: 0; +} + +dd p { + margin: 0.25em 0; +} + +a, img, img.drawing { + border: 0; +} + +pre { + border: 1pt solid #AEBDCC; + background-color: #F3F5F7; + padding: 5pt; + font-family: courier, monospace; + white-space: pre; + /* begin css 3 or browser specific rules - do not remove! + see: http://forums.techguy.org/archive/index.php/t-249849.html */ + white-space: pre-wrap; + word-wrap: break-word; + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + /* end css 3 or browser specific rules */ +} + +pre.comment { + background-color: #CCCCCC; + color: red; + padding: 0; + margin: 0; + border: 0; +} + +pre.comment:before { + content: url(../img/attention.png); +} + + +/* .comment css definition must be top of .red/.green/.blue or it won't work */ +.comment { color: #555555; background-color: #DDDDFF; } + +.red { background-color: #FFCCCC; } +.green { background-color: #CCFFCC; } +.blue { background-color: #CCCCFF; } +.yellow { background-color: #FFF29F; } +.orange { background-color: #FFD59B; } + +.solid { border: 2px solid #000000; padding: 2px; } +.dashed { border: 2px dashed #000000; padding: 2px; } +.dotted { border: 2px dotted #000000; padding: 2px; } + +.left { text-align: left; } +.center { text-align: center; } +.right { text-align: right; } +.justify { text-align: justify; } + +table +{ + margin: 0.5em 0 0 0.5em; + border-collapse: collapse; +} + +th, td +{ + padding: 0.25em 0.5em 0.25em 0.5em; +/* border: 1pt solid #ADB9CC; */ +} + +td p { + margin: 0; + padding: 0; +} + +/* TableOfContents macro */ +div.table-of-contents { + border: 1px solid #bbbbbb; + color: black; + background-color: #eeeeee; + font-size: 80%; + text-align: left; + margin: 0.5em 0 0.5em 1em; + padding: 0.5em 0.75em 0.5em 0.5em; + max-width: 50%; + display: inline-table; +} +div.table-of-contents ol { + margin: 0; + padding: 0 0 0 2em; +} +div.table-of-contents ul { + margin: 0; + list-style:none; +} +div.table-of-contents li { + margin:0; + padding: 0; +} +p.table-of-contents-heading { + font-weight:bold; + padding:0; + margin: 0 0 0.5em 0; + letter-spacing: 0.075em; +} + +/* Navigation macro */ +table.navigation { + background: #fff; + margin: 0; +} + +.footnotes div { + width: 5em; + border-top: 1pt solid gray; +} + +.footnotes ol { + padding: 0 2em; + margin: 0 0 1em; +} + +.info { + float: right; + font-size: 0.7em; + color: gray; +} + +#pageinfo { + margin-top: 2em; +} + +.seperator { + color: gray; +} + +#pagebottom {clear: both;} + +/* standard rule ---- */ +hr { + height: 1pt; + background-color: #9C9C9C; + border: 0; +} + +/* custom rules ----- to ---------- */ +.hr1 {height: 2pt;} +.hr2 {height: 3pt;} +.hr3 {height: 4pt;} +.hr4 {height: 5pt;} +.hr5 {height: 6pt;} +.hr6 {height: 7pt;} + +/* Replacement for deprecated html 3 element and html 4 */ +.u {text-decoration: underline;} +.strike {text-decoration: line-through;} + +/* eye catchers */ +.warning +{ + color: red; +} + +.error +{ + color: red; +} + +strong.highlight +{ + background-color: #CCE0FF; + padding: 1pt; +} + + +/* Recent changes */ + +.rcrss { + float: right; + margin: 0; +} + +.recentchanges[dir="rtl"] .rcrss { + float: left; +} + +.recentchanges table { + margin-left: 0; +} + +.recentchanges td { + vertical-align: top; + border: none; + border-bottom: 1pt solid #E6EAF0; + background: #F2F4F7; +} + +.rcdaybreak td { + background: #B8C5D9; + border: none; +} + +.rcdaybreak td a { + font-size: 0.88em; +} + +.rcicon1, .rcicon2 { + text-align: center; +} + +.rcpagelink { + width: 33%; +} + +.rctime { + font-size: 0.88em; + white-space: nowrap; +} + +.rceditor { + white-space: nowrap; + font-size: 0.88em; +} + +.rccomment { + width: 50%; + color: gray; + font-size: 0.88em; +} + + +/* User Preferences */ + +.userpref table, .userpref td { + border: none; +} + +/* CSS for new code_area markup used by Colorizer and ParserBase */ + +div.codearea { /* the div makes the border */ + margin: 0.5em 0; + padding: 0; + border: 1pt solid #AEBDCC; + background-color: #F3F5F7; + color: black; +} + +div.codearea pre { /* the pre has no border and is inside the div */ + margin: 0; + padding: 10pt; + border: none; +} + +a.codenumbers { /* format of the line numbering link */ + margin: 0 10pt; + font-size: 0.85em; + color: gray; +} + +/* format of certain syntax spans */ +div.codearea pre span.LineNumber {color: gray;} +div.codearea pre span.ID {color: #000000;} +div.codearea pre span.Operator {color: #0000C0;} +div.codearea pre span.Char {color: #004080;} +div.codearea pre span.Comment {color: #008000;} +div.codearea pre span.Number {color: #0080C0;} +div.codearea pre span.String {color: #004080;} +div.codearea pre span.SPChar {color: #0000C0;} +div.codearea pre span.ResWord {color: #A00000;} +div.codearea pre span.ConsWord {color: #008080; font-weight: bold;} +div.codearea pre span.Error {color: #FF8080; border: solid 1.5pt #FF0000;} +div.codearea pre span.ResWord2 {color: #0080ff; font-weight: bold;} +div.codearea pre span.Special {color: #0000ff;} +div.codearea pre span.Preprc {color: #803999;} + +/* for diff parser */ +div.codearea pre span.DiffAdded {color: #4876FF;} +div.codearea pre span.DiffRemoved {color: #FF0000;} +div.codearea pre span.DiffChanged {color: #FF7F50;} +div.codearea pre span.DiffSeparator {color: #228B22; font-weight: bold} + +/* Search results */ +.advancedsearch { + border: 1pt solid #ADB9CC; +} + +.advancedsearch td { + vertical-align: top; + border: 0; +} + +.advancedsearch td.searchfor { + font-weight: bold; +} + +.advancedsearch input { + border: 1px solid #ADB9CC; +} + +.advancedsearch td.submit { + border-top: 1px solid #ADB9CC; + text-align: right; +} + +.advancedsearch optioni, select { + border: 1px solid #ADB9CC; +} + + +.searchresults dt { + margin-top: 1em; + font-weight: normal; +} + +.searchresults dd, .searchresults p { + font-size: 0.85em; +} + +.searchresults .searchhitinfobar { + color: #008000; + margin-left: 15px; + margin-top: 0; +} + +p.searchstats { + font-size: 0.8em; + text-align: right; + width: 100%; + background-color: #E6EAF0; + border-top: 1px solid #9088DC; + padding: 2px; +} + +p.searchhint { + background-color: #E6EAF0; + border: 1px solid #9088DC; + padding: 2px; +} + +.searchpages { + margin-left: auto; + margin-right: auto; +} + +.searchpages tr, .searchpages td { + border: 0; + padding: 5px; + margin: 0; + text-align: center; + vertical-align: middle; + color: #b93a58; + font-weight: bold; + font-size: 1.05em; +} + +.searchpages td a, .searchpages td a:link { + text-decoration: underline; +} + +/* MonthCalendar css */ + +/* days without and with pages linked to them */ +a.cal-emptyday { + color: #777777; + text-align: center; +} +a.cal-usedday { + color: #000000; + font-weight: bold; + text-align: center; +} +/* general stuff: workdays, weekend, today */ +td.cal-workday { + background-color: #DDDDFF; + text-align: center; +} +td.cal-weekend { + background-color: #FFDDDD; + text-align: center; +} +td.cal-today { + background-color: #CCFFCC; + border-style: solid; + border-width: 2pt; + text-align: center; +} +/* invalid places on the monthly calendar sheet */ +td.cal-invalidday { + background-color: #CCCCCC; +} +/* links to prev/next month/year */ +a.cal-link { + color: #000000; + text-decoration: none; +} +th.cal-header { + background-color: #DDBBFF; + text-align: center; +} + +/* for MonthCalendar mouseover info boxes */ +table.tip { + color: black; + background-color: #FF8888; + font-size: small; + font-weight: normal; + border-style: solid; + border-width: 1px; +} + +th.tip { + background-color: #FF4444; + font-weight: bold; + text-align: center; +} + +td.tip { + text-align: left; +} +*[dir="rtl"] td.tip { + text-align: right; +} + +/* end MonthCalendar stuff */ + +#message .hint {font-style: italic;} +#message .info { + float: none; + font-size: 1em; + color: black; +} +#message .info:before { + content: url('../img/icon-info.png'); + margin: 0 0.5em 0 0.25em; + vertical-align: middle; +} +#message .warning:before { + content: url('../img/alert.png'); + margin: 0 0.5em 0 0.125em; + vertical-align: middle; +} +#message .error:before { + content: url('../img/icon-error.png'); + margin: 0 0.5em 0 0.125em; + vertical-align: middle; +} +#message a.clear-link { + display: block; + margin: 0.75em 0 0 0; + font-size: small; +} + + +/* admonition start */ +#content div.caution, +#content div.important, +#content div.note, +#content div.tip, +#content div.warning { + border: 1pt solid #E5E5E5; + background-color: #F9F9FF; + color: black; + + margin: 10pt 30pt 10pt 30pt; + background-repeat: no-repeat; + background-position: 8px 8px; + min-height: 64px; /*64=48+8+8 but doesn't work with IE*/ + padding-left: 64px; +} + +#content div.caution p, +#content div.important p, +#content div.note p, +#content div.tip p, +#content div.warning p { + margin-top: 8px; /*to align text with bg graphic*/ +} + +#content div.tip { background-image: url("../img/admon-tip.png"); } +#content div.note { background-image: url("../img/admon-note.png"); } +#content div.important { background-image: url("../img/admon-important.png"); } +#content div.caution { background-image: url("../img/admon-caution.png"); } +#content div.warning { background-image: url("../img/admon-warning.png"); } + +/* section numbering */ + +#page { + counter-reset: chapter; /* Create a chapter counter scope */ +} +#page h1 { + counter-reset: chapter; +} +#page h2:before { + content: counter(chapter) ". "; + counter-increment: chapter; /* Add 1 to chapter */ +} +#page h2 { + counter-reset: section; +} +#page h3 { + counter-reset: subsection; +} +#page h3:before { + content: counter(chapter) "." counter(section) " "; + counter-increment: section; +} +#page h4:before { + content: counter(chapter) "." counter(section) "." counter(subsection) " "; + counter-increment: subsection; +} diff --git a/mermaid.css b/css/mermaid.css similarity index 100% rename from mermaid.css rename to css/mermaid.css diff --git a/css/msie.css b/css/msie.css new file mode 100644 index 000000000..30c6a5936 --- /dev/null +++ b/css/msie.css @@ -0,0 +1,40 @@ +/* msie.css - MoinMoin MS Internet explorer bug workarounds - Copied from ROS wiki */ + +/* IE6 and IE7 both suck with :before */ +a.www { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } +a.http { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } +a.https { padding-left: 14px; background: url(../img/moin-www.png) left center no-repeat; } +a.file { padding-left: 14px; background: url(../img/moin-ftp.png) left center no-repeat; } +a.ftp { padding-left: 14px; background: url(../img/moin-ftp.png) left center no-repeat; } +a.nntp { padding-left: 14px; background: url(../img/moin-news.png) left center no-repeat; } +a.news { padding-left: 14px; background: url(../img/moin-news.png) left center no-repeat; } +a.telnet, a.ssh { padding-left: 14px; background: url(../img/moin-telnet.png) left center no-repeat; } +a.irc, a.ircs { padding-left: 14px; background: url(../img/moin-telnet.png) left center no-repeat; } +a.mailto { padding-left: 14px; background: url(../img/moin-email.png) left center no-repeat; } +a.attachment { padding-left: 14px; background: url(../img/moin-attach.png) left center no-repeat; } +a.badinterwiki { padding-left: 14px; background: url(../img/moin-inter.png) left center no-repeat; } +a.interwiki { padding-left: 14px; background: url(../img/moin-inter.png) left center no-repeat; } +#message .warning { padding-left: 20px; background: url(../img/alert.png) left center no-repeat; } +#message .error { padding-left: 20px; background: url(../img/icon-error.png) left center no-repeat; } + +#pagetrail li, #pagelocation li { + border-left: 1px solid #AAA; + padding: 0 0.3em; +} + +/* Spans for line-anchors - needed for IE6 and IE7 where omitting the "display: none" triggers rendering bugs. */ +span.anchor { display: none; } + +/* Fix for PeekABoo Bug */ +#page { min-height: 1%; } + +/* Some * html hacks for IE6 and below only (IE7 ignores * html) */ + +/* IE6 has a bug with rendering of float elements. We workaround this bug by + * assigning those elements a height attribute because we currently don't know + * a better solution. This results in IE calculating the correct height of the + * characters and displaying them correctly. We don't know any negative side + * effects of this workaround: + */ +* html div#page, * html div#header { height: 0.001%; } + diff --git a/css/print.css b/css/print.css new file mode 100644 index 000000000..6ee175f1e --- /dev/null +++ b/css/print.css @@ -0,0 +1,52 @@ +/* print.css - Copied from ROS wiki + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ + +html { + font-family: Times, serif; + font-size: 12pt; +} + +body { + /* Give about 3.4cm in Mozilla/Firefox and about 2.2cm in Safari */ + margin: 1.5cm; +} + +a, a:visited, a.nonexistent, a.badinterwiki { + color: black; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +.info a { + color: gray; +} + +pre { + font-size: 10pt; +} + +a.interwiki:before, a.badinterwiki:before { + content: attr(title) ":"; +} + +a.interwiki img, a.badinterwiki img { + display: none; +} + +.footnotes div { + width: 5em; + border-top: 1pt solid gray; +} + +/* user interface styles */ + +#header, #sidebar, #footer, #timings, #credits, #interwiki, #pagelocation { + display: none; +} diff --git a/rep.css b/css/rep.css similarity index 100% rename from rep.css rename to css/rep.css diff --git a/css/screen.css b/css/screen.css new file mode 100644 index 000000000..997a2ee9e --- /dev/null +++ b/css/screen.css @@ -0,0 +1,431 @@ +/* screen.css - MoinMoin Default Styles + +Copyright (c) 2001, 2002, 2003 by Juergen Hermann +*/ + +/* content styles */ + +body { + margin: 0; + padding: 0; + border: 0; +} + +#pageinfo { + font-size: 10pt; +} +a.download { + font-size: 120%; + letter-spacing: 0.05em; + font-weight: bold; + background: #E7E7E7; + border: 1px solid #9C9C9C; + padding: 0.5em; + text-align: center; +} + +.footnotes div { + width: 5em; + border-top: 1px solid #e5e5e5; +} + +input { + font-size: 1em; + font-family: Arial, Lucida Grande, sans-serif; +} + +textarea { + font-size: 1em; + font-family: monospace; +} + +span.sep { + display: none; +} + +/* user interface styles */ + +#logo { + float: left; + margin: 5px 10px; + padding: 0; + /* For text only logo */ + font-size: 1.4em; + line-height: 1em; + font-weight: bold; +} + +*[dir="rtl"] #logo { + float: right; +} + +#logo img { + vertical-align: middle; +} + +#logo a { + color: black; + text-decoration: none; +} + +#searchform { + float: right; + margin: 5px 10px 0 10px; + padding: 0; + white-space: nowrap; +} + +*[dir="rtl"] #searchform { + float: left; +} + +#searchform form div { + display: inline; +} + +#dpage { + width: 1024px; + margin-left: auto; + margin-right: auto; +} +#page { +/* margin: 10px 220px 10px 10px; */ + + padding: 4px; + margin-left: 10px; + width: 780px; +} + +.footer { + margin-left: 10px; + clear: all; + font-size: 10pt; + color: #999; +} +#sidebar { + display: inline; + margin: 10px; + float: right; + clear: right; + width: 200px; + padding: 0; + font-size: 0.88em; + overflow: hidden; +} + +.sidepanel { + margin: 0 0 10px 0; + float: right; + width: 180px; +} + +.sidepanel h1 { + margin: 0; + padding: 0.2em 10px; + text-align: center; + border: none; + border-top: 1px solid white; + border-bottom: 1pt solid #BFAE8F; + font-size: 1em; + color: black; +} + +.sidepanel h2 { + margin: 0; + padding: 0.2em 10px; + font-size: 1em; + border: none; + color: black; + /*background: #BFAE8F; */ +} + +.sidepanel ul { + list-style-type: none; + margin: 0; + padding: 0; +} + +.sidepanel li { + margin: 0; + padding: 2px 10px; +} + +.sidepanel li form { + margin: 0; +} + +.sidepanel a { + text-decoration: none; + display: block; +} + +.sidepanel a:hover { + text-decoration: underline; +} + +.actionsmenu select { + width: 160px; +} + +#pagetrail { + clear: right; + margin: 5px 11px; + padding: 0; + font-size: 0.88em; +} + +*[dir="rtl"] #pagetrail { + clear: left; + margin: 0 11px; +} + +#interwiki { + margin: 5px 11px; + display: inline; + font-size: 1em; +} + +*[dir="rtl"] #interwiki { + margin: 0; +} + +#interwiki span:after { + content: ":"; +} + +#locationline { + clear: right; + padding: 0; +} + +*[dir="rtl"] #locationline { + clear: left; +} + +#header2 { + margin-top: 20px; + margin-bottom: 0; +} +#pagelocation { + display: inline; + margin: 0 0 0 10px; + padding: 0; + font-size: 18pt; + font-weight: bold; +} +#pagelocation a { + text-decoration: none; +} + +#pagetrail li, #pagelocation li { + display: inline; + margin: 0; +} + +/* XXX Warning: non-ascii characters! */ +#pagetrail li:after { + content: " » "; +} + +*[dir="rtl"] #pagetrail li:after { + content: " « "; +} + +#pagetrail li:last-child:after { + content: ""; +} + +#pagelocation li:after { + content: "/ "; +} + +*[dir="rtl"] #pagelocation li:after { + content: " \\ "; /* TODO: check what looks best with RTL */ +} + +#pagelocation li:last-child:after { + content: ""; +} + +#navibar li.current { + border: none; + background: #eee; +} + +.editbar form, .editbar form div { + display: inline; + margin: 0; +} + +#message { + margin: 10px 220px 10px 10px; + padding: 4px; + background-color: #F0ECE6; + border: 1px solid #9c9c9c; + border-bottom: 2px solid #9c9c9c; +} + +#message p { + margin: 5px 0; + padding: 0; + font-weight: bold; +} + +#message div.buttons { + font-weight: normal; +} + +form.dialog { + margin: 0 15px; +} + +.dialog td { + border: none; + padding: 5px; +} + +.dialog td.label { + text-align: right; + font-weight: bold; + width: 25%; +} + +*[dir="rtl"] .dialog td.label { + text-align: left; +} + +.dialog td.content input { + width: 100%; +} + +/* We use here dumb css1 ids because of IE suckiness */ +#editor-comment {width: 70%;} +#editor-textarea {width: 100%;} + +#preview, #previewbelow { + border: 2px solid #e5e5e5; + padding: .5em; + background: url(../img/draft.png); +} + +#textcha { + font-size: 100%; + margin-top: 0.5em; + border: 2px solid #FF8888; + color: black; + vertical-align: middle; + padding: 3px 2px; +} + +#textcha-answer { + border: 2px solid #000000; + padding: 3px 2px; +} + +#pagebottom { + clear: both; +} + +#footer { + clear: both; + margin: 0; + padding: 0; +} + +#credits, #version, #timings{ + margin: 5px 10px; + padding: 0; + text-align: center; + font-size: 0.88em; + color: #6C7680; +} + +#credits li, #timings li { + display: inline; + padding: 0 2px; + margin: 0 4px; +} + +#credits img { + vertical-align: middle; +} + +.diff { + width: 99%; +} + +.diff-title { + background-color: #C0C0C0; +} + +.diff-added { + background-color: #E0FFE0; + vertical-align: sub; +} + +.diff-removed { + background-color: #FFFFE0; + vertical-align: sub; +} + +.diff-added span { + background-color: #80FF80; +} + +.diff-removed span { + background-color: #FFFF80; +} + +.searchresult dd span { + font-weight: bold; +} + +#openididentifier { + background: url(../../common/openid.png) no-repeat; + background-position: 0 50%; + padding-left: 18px; +} + +#topnav-table { + border: 0; + margin-left: auto; + margin-right: auto; +} +.package-links { + /* float this between the content and the Wiki sidebar. there is the issue that large package names can bleed into the right sidebar if they exceed the width */ + float: right; + width: 200px; + padding: 5px; + margin-right: 0; + margin-left: 5px; + background-color: #eee; + border: 1px solid #ddd; +} +.package-links ul { + padding: 0; +} +.package-links li { + font-size: 10pt; + margin-left: 5px; + padding-left: 0; + list-style: none; +} +#package-links { + /* float this between the content and the Wiki sidebar. there is the issue that large package names can bleed into the right sidebar if they exceed the width */ + float: right; + width: 200px; + padding: 5px; + margin-right: 0; + margin-left: 5px; + background-color: #eee; + border: 1px solid #ddd; +} +#package-links ul { + padding: 0; +} +#package-links li { + font-size: 10pt; + margin-left: 5px; + padding-left: 0; + list-style: none; +} diff --git a/docutils.conf b/docutils.conf index c6d136960..2c6875885 100644 --- a/docutils.conf +++ b/docutils.conf @@ -8,7 +8,7 @@ datestamp: %Y-%m-%d %H:%M UTC generator: 1 # use the local stylesheet -stylesheet: rep.css +stylesheet: css/rep.css template: rep-html-template # link to the stylesheet; don't embed it diff --git a/docutils_transforms_reps.py b/docutils_transforms_reps.py index 1894f30b3..e3db23b97 100644 --- a/docutils_transforms_reps.py +++ b/docutils_transforms_reps.py @@ -37,7 +37,7 @@ class Headers(Transform): (re.compile(r'\$[a-zA-Z]+: (.+) \$$'), r'\1'),) def apply(self): - self.document.settings.rep_base_url = 'http://ros.org/reps/' + self.document.settings.rep_base_url = 'https://ros.org/reps/' if not len(self.document): # @@@ replace these DataErrors with proper system messages @@ -263,7 +263,7 @@ def visit_row(self, node): self.entry = 0 def visit_entry(self, node): - self.document.settings.rep_base_url = 'http://ros.org/reps/' + self.document.settings.rep_base_url = 'https://ros.org/reps/' self.entry += 1 if self.rep_table and self.entry == 2 and len(node) == 1: diff --git a/docutils_writers_rep/__init__.py b/docutils_writers_rep/__init__.py index a60d88e31..25a04a574 100644 --- a/docutils_writers_rep/__init__.py +++ b/docutils_writers_rep/__init__.py @@ -20,7 +20,7 @@ class Writer(html4css1.Writer): - default_stylesheet = 'rep.css' + default_stylesheet = 'css/rep.css' default_stylesheet_path = utils.relative_path( os.path.join(os.getcwd(), 'dummy'), @@ -38,9 +38,9 @@ class Writer(html4css1.Writer): 'option is "%s", and the default value for --template is "%s". ' 'See HTML-Specific Options above.' % (default_stylesheet_path, default_template_path), - (('ROS\'s home URL. Default is "http://ros.org".', + (('ROS\'s home URL. Default is "https://ros.org".', ['--ros-home'], - {'default': 'http://ros.org', 'metavar': ''}), + {'default': 'https://ros.org', 'metavar': ''}), ('Home URL prefix for REPs. Default is "." (current directory).', ['--rep-home'], {'default': '.', 'metavar': ''}), diff --git a/manifest.xml b/manifest.xml index 3566e0612..cbc7927b6 100644 --- a/manifest.xml +++ b/manifest.xml @@ -7,6 +7,6 @@ Ken Conley/kwc@willowgarage.com BSD - http://ros.org/reps/rep-0000.html + https://ros.org/reps/rep-0000.html diff --git a/pyramid-rep-template b/pyramid-rep-template index af3e60323..b44f5daf9 100644 --- a/pyramid-rep-template +++ b/pyramid-rep-template @@ -1,6 +1,6 @@ %(body)s diff --git a/rep-0001.rst b/rep-0001.rst index a65ebb86c..61364a9f8 100644 --- a/rep-0001.rst +++ b/rep-0001.rst @@ -447,7 +447,7 @@ References and Footnotes https://github.com/ros-infrastructure/rep/commits/master .. [2] REP 12, Sample reStructuredText REP Template - (http://ros.org/reps/rep-0012.html) + (https://ros.org/reps/rep-0012.html) .. _issue tracker: https://github.com/ros-infrastructure/rep/issues diff --git a/rep-0002.rst b/rep-0002.rst index cd8aab06c..6345accec 100644 --- a/rep-0002.rst +++ b/rep-0002.rst @@ -148,10 +148,10 @@ References and Footnotes ======================== .. [1] REP 1, REP Purpose and Guidelines - (http://ros.org/reps/rep-0001.html) + (https://ros.org/reps/rep-0001.html) .. [2] REP 10, Voting Guidelines - (http://ros.org/reps/rep-0010.html) + (https://ros.org/reps/rep-0010.html) Copyright diff --git a/rep-0012.rst b/rep-0012.rst index 7dd127dc3..74688b9ed 100644 --- a/rep-0012.rst +++ b/rep-0012.rst @@ -432,7 +432,7 @@ Hyperlink targets begin with two periods and a space (the "explicit markup start"), followed by a leading underscore, the reference text, a colon, and the URL (absolute or relative):: - .. _ROS web site: http://ros.org/ + .. _ROS web site: https://ros.org/ The reference text and the target text must match (although the match is case-insensitive and ignores differences in whitespace). Note that @@ -483,12 +483,12 @@ followed by the footnote body. For example:: ========== .. [2] REP 1, "REP Purpose and Guidelines", Conley - (http://ros.org/reps/rep-0001.html) + (https://ros.org/reps/rep-0001.html) If you decide to provide an explicit URL for a REP, please use this as the URL template:: - http://ros.org/reps/rep-xxxx.html + https://ros.org/reps/rep-xxxx.html REP numbers in URLs must be padded with zeros from the left, so as to be exactly 4 characters wide, however REP numbers in the text are @@ -509,7 +509,7 @@ other characters are allowed). For example:: .. [#REP-1] REP 1, "REP Purpose and Guidelines", Warsaw, Hylton - http://ros.org/reps/rep-0001.html + https://ros.org/reps/rep-0001.html Footnotes and footnote references will be numbered automatically, and the numbers will always match. Once a REP is finalized, auto-numbered @@ -644,10 +644,10 @@ References ========== .. [1] REP 1, REP Purpose and Guidelines, Warsaw, Hylton - (http://ros.org/reps/rep-0001.html) + (https://ros.org/reps/rep-0001.html) .. [2] REP 9, Sample Plaintext REP Template, Warsaw - (http://ros.org/reps/pep-0009.html) + (https://ros.org/reps/pep-0009.html) Copyright diff --git a/rep-0100.rst b/rep-0100.rst index 537a50e53..3883744c9 100644 --- a/rep-0100.rst +++ b/rep-0100.rst @@ -435,7 +435,7 @@ References ========== .. [#REP102] REP 102 - (http://ros.org/reps/rep-0102.html) + (https://ros.org/reps/rep-0102.html) Copyright diff --git a/rep-0101.rst b/rep-0101.rst index 422a08047..f8f68c008 100644 --- a/rep-0101.rst +++ b/rep-0101.rst @@ -112,7 +112,7 @@ References .. [1] ROS Roadmap (http://ros.org/wiki/ROS/Roadmap) .. [#REP100] REP 100 - (http://ros.org/reps/rep-0100.html) + (https://ros.org/reps/rep-0100.html) .. _rosh: http://ros.org/wiki/rosh .. _rxlab: http://ros.org/wiki/rxlab diff --git a/rep-0108.rst b/rep-0108.rst index 7a3c64e45..9650eb7d4 100644 --- a/rep-0108.rst +++ b/rep-0108.rst @@ -383,7 +383,7 @@ References .. [1] rosdistro (http://ros.org/wiki/rosdistro) .. [2] REP 100 - (http://ros.org/reps/rep-0100.html) + (https://ros.org/reps/rep-0100.html) Copyright diff --git a/rep-0113.rst b/rep-0113.rst index fabb2f21a..ffd859c63 100644 --- a/rep-0113.rst +++ b/rep-0113.rst @@ -182,7 +182,7 @@ References (http://www.ros.org/reps/rep-0109.html) .. [3] REP 100 - (http://ros.org/reps/rep-0100.html) + (https://ros.org/reps/rep-0100.html) Copyright diff --git a/rep-0121.rst b/rep-0121.rst index 38a9fcaab..448714097 100644 --- a/rep-0121.rst +++ b/rep-0121.rst @@ -120,7 +120,7 @@ References ========== .. [1] REP 116 - (http://ros.org/reps/rep-0116.html) + (https://ros.org/reps/rep-0116.html) .. [2] Patch (https://kforge.ros.org/common/pluginlib/file/1e14fef67d09/include/pluginlib/class_loader.h) .. [3] Patch diff --git a/rep-0122.rst b/rep-0122.rst index 4f507a038..a521ba0d7 100644 --- a/rep-0122.rst +++ b/rep-0122.rst @@ -444,21 +444,21 @@ References .. [3] ROS Manifest XML Tags Reference (http://ros.org/doc/independent/api/rospkg/html/manifest_xml.html) .. [4] REP 109: Unary Stacks - (http://ros.org/reps/rep-0109.html) + (https://ros.org/reps/rep-0109.html) .. [5] REP 102: ROS Install Target - (http://ros.org/reps/rep-0102.html) + (https://ros.org/reps/rep-0102.html) .. [6] ROS Fuerte Migration Guide (http://ros.org/wiki/fuerte/Migration) .. [7] REP 124: Changes to roslaunch and rosrun for REP 122 and catkin build system - (http://ros.org/reps/rep-0124.html) + (https://ros.org/reps/rep-0124.html) .. [8] Filesystem Hierarchy Standard 2.3 (http://www.pathname.com/fhs/pub/fhs-2.3.pdf) .. [9] REP 123: ROS_ETC_DIR, ROS_DISTRO environment variables and ROS_ROOT changes - (http://ros.org/reps/rep-0123.html) + (https://ros.org/reps/rep-0123.html) .. [10] Catkin build system documentation (http://ros.org/wiki/catkin) .. [11] REP 127: Specification of package manifest format - (http://ros.org/reps/rep-0127.html) + (https://ros.org/reps/rep-0127.html) Copyright ========= diff --git a/rep-0123.rst b/rep-0123.rst index 1a607d1d8..151e5530a 100644 --- a/rep-0123.rst +++ b/rep-0123.rst @@ -125,7 +125,7 @@ References ========== .. [1] REP 122: FHS layout for ROS installation - (http://ros.org/reps/rep-0122.html) + (https://ros.org/reps/rep-0122.html) .. [2] ROS filesystem environment variables (http://ros.org/doc/api/rospkg/html/environment.html) .. [3] Wikipedia: Filesystem Hiearchy Standard diff --git a/rep-0124.rst b/rep-0124.rst index d4b0cab21..9c7bd4149 100644 --- a/rep-0124.rst +++ b/rep-0124.rst @@ -200,9 +200,9 @@ References .. [2] Wikipedia: Filesystem Hiearchy Standard (http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard) .. [3] REP 122: FHS layout for ROS installation - (http://ros.org/reps/rep-0122.html) + (https://ros.org/reps/rep-0122.html) .. [4] REP 123: ROS_ETC_DIR, ROS_DISTRO environment variables and ROS_ROOT changes - (http://ros.org/reps/rep-0123.html) + (https://ros.org/reps/rep-0123.html) diff --git a/rep-0125.rst b/rep-0125.rst index 9847220b8..c04f4c738 100644 --- a/rep-0125.rst +++ b/rep-0125.rst @@ -447,15 +447,15 @@ References .. [2] sources.list man page (http://manpages.debian.net/cgi-bin/man.cgi?query=sources.list&sektion=5&apropos=0&manpath=Debian+Sid&locale=en) .. [3] REP 111: Multiple Package Manager Support for Rosdep - (http://ros.org/reps/rep-0111.html) + (https://ros.org/reps/rep-0111.html) .. [4] rosdep YAML format (http://ros.org/doc/independent/api/rosdep/html/rosdep_yaml_format.html) .. [5] REP 122: FHS layout for ROS installation - (http://ros.org/reps/rep-0122.html) + (https://ros.org/reps/rep-0122.html) .. [6] REP 123: ROS_ETC_DIR, ROS_DISTRO environment variables and ROS_ROOT changes - (http://ros.org/reps/rep-0123.html) + (https://ros.org/reps/rep-0123.html) .. [7] REP 3: Target Platforms - (http://ros.org/reps/rep-0003.html) + (https://ros.org/reps/rep-0003.html) Copyright diff --git a/rep-0127.rst b/rep-0127.rst index ab2a58694..295e73d81 100644 --- a/rep-0127.rst +++ b/rep-0127.rst @@ -676,7 +676,7 @@ References .. [1] Naming conventions (http://www.ros.org/wiki/ROS/Patterns/Conventions#Naming_ROS_Resources) .. [2] REP-0140 - (http://ros.org/reps/rep-0140.html) + (https://ros.org/reps/rep-0140.html) .. [3] Comparison between YAML and XML for manifests (https://github.com/ros/catkin/issues/128) .. [4] Declaring relationships between packages (Debian Policy Manual) diff --git a/rep-0128.rst b/rep-0128.rst index 75b32726e..5c0ce9e86 100644 --- a/rep-0128.rst +++ b/rep-0128.rst @@ -288,7 +288,7 @@ References ========== .. [1] REP 1, REP Purpose and Guidelines, Warsaw, Hylton - (http://ros.org/reps/rep-0001.html) + (https://ros.org/reps/rep-0001.html) Copyright diff --git a/rep-0131.rst b/rep-0131.rst index 979ad1fcb..293614a68 100644 --- a/rep-0131.rst +++ b/rep-0131.rst @@ -175,10 +175,10 @@ References (http://www.ros.org/reps/rep-0108.html) .. [2] REP 127: Specification of package manifest format - (http://ros.org/reps/rep-0127.html) + (https://ros.org/reps/rep-0127.html) .. [3] REP 100 - (http://ros.org/reps/rep-0100.html) + (https://ros.org/reps/rep-0100.html) Copyright diff --git a/rep-0133.rst b/rep-0133.rst index db274489c..e07eebeea 100644 --- a/rep-0133.rst +++ b/rep-0133.rst @@ -627,7 +627,7 @@ References and Footnotes (https://github.com/ros/catkin/issues/249) .. [4] REP 110, SCM-like rosinstall command structure - (http://ros.org/reps/rep-0012.html) + (https://ros.org/reps/rep-0012.html) Copyright ========= diff --git a/rep-0137.rst b/rep-0137.rst index 5a8e862d5..7c9e5a6ac 100644 --- a/rep-0137.rst +++ b/rep-0137.rst @@ -117,7 +117,7 @@ As a good practice, the files should contain a header such as: %YAML 1.1 # ROS index|release|release-build|source|source-build|doc|doc-build file - # see REP 137: http://ros.org/reps/rep-0137.html + # see REP 137: https://ros.org/reps/rep-0137.html --- Index file @@ -155,7 +155,7 @@ doc files and their corresponding build files. %YAML 1.1 # ROS index file - # see REP 137: http://ros.org/reps/rep-0137.html + # see REP 137: https://ros.org/reps/rep-0137.html --- distributions: groovy: @@ -230,7 +230,7 @@ target platforms. %YAML 1.1 # ROS release file - # see REP 137: http://ros.org/reps/rep-0137.html + # see REP 137: https://ros.org/reps/rep-0137.html --- repositories: actionlib: @@ -313,7 +313,7 @@ and specifying the platforms and architectures. %YAML 1.1 # ROS release-build file - # see REP 137: http://ros.org/reps/rep-0137.html + # see REP 137: https://ros.org/reps/rep-0137.html --- package_whitelist: [ros_tutorials, common_tutorials] package_blacklist: [turtlesim] @@ -469,7 +469,7 @@ References ========== .. [1] Bloom: a release automation tool (http://www.ros.org/wiki/bloom) -.. [2] rosdep2: http://ros.org/reps/rep-0125.html +.. [2] rosdep2: https://ros.org/reps/rep-0125.html .. [3] roslocate: http://www.ros.org/reps/rep-0115.html .. [4] rospkg.os_detect: http://www.ros.org/reps/rep-0114.html .. [5] Example files specifying a ROS distro: https://github.com/ros-infrastructure/rosdistro/tree/master/test/files diff --git a/rep-0140.rst b/rep-0140.rst index f73c78ebd..151e7151c 100644 --- a/rep-0140.rst +++ b/rep-0140.rst @@ -776,7 +776,7 @@ References ========== .. [1] REP-0127 - (http://ros.org/reps/rep-0127.html) + (https://ros.org/reps/rep-0127.html) .. [2] ROS naming conventions (http://www.ros.org/wiki/ROS/Patterns/Conventions#Naming_ROS_Resources) .. [3] ros-infrastructure/catkin_pkg#43: `"add support for depend tag" @@ -794,7 +794,7 @@ References .. [9] Buildsystem mailing list discussion: `"REP-0140: internal review" `_ .. [10] REP-0134 - (http://ros.org/reps/rep-0134.html) + (https://ros.org/reps/rep-0134.html) .. [11] Schema file (https://github.com/ros-infrastructure/rep/blob/master/xsd/package_format2.xsd) diff --git a/rep-0141.rst b/rep-0141.rst index e45934fad..1eb686e0b 100644 --- a/rep-0141.rst +++ b/rep-0141.rst @@ -134,7 +134,7 @@ As a good practice, the files should contain a header such as: %YAML 1.1 # ROS index|distribution|release-build|source-build|doc-build file - # see REP 141: http://ros.org/reps/rep-0141.html + # see REP 141: https://ros.org/reps/rep-0141.html --- Index file @@ -171,7 +171,7 @@ doc files and their corresponding build files. %YAML 1.1 # ROS index file - # see REP 141: http://ros.org/reps/rep-0141.html + # see REP 141: https://ros.org/reps/rep-0141.html --- distributions: groovy: @@ -268,7 +268,7 @@ platforms. All changes to REP 137 are commented on inline. %YAML 1.1 # ROS distribution file - # see REP 141: http://ros.org/reps/rep-0141.html + # see REP 141: https://ros.org/reps/rep-0141.html --- # prefixed with 'release_' since these are the platforms we release for release_platforms: @@ -391,7 +391,7 @@ part of a distribution file and specifying the platforms and architectures. %YAML 1.1 # ROS release-build file - # see REP 141: http://ros.org/reps/rep-0141.html + # see REP 141: https://ros.org/reps/rep-0141.html --- package_whitelist: [ros_tutorials, common_tutorials] package_blacklist: [turtlesim] @@ -532,7 +532,7 @@ References ========== .. [1] Bloom: a release automation tool (http://www.ros.org/wiki/bloom) -.. [2] rosdep2: http://ros.org/reps/rep-0125.html +.. [2] rosdep2: https://ros.org/reps/rep-0125.html .. [3] roslocate: http://www.ros.org/reps/rep-0115.html .. [4] rospkg.os_detect: http://www.ros.org/reps/rep-0114.html .. [5] Example files specifying a ROS distro: https://github.com/ros-infrastructure/rosdistro/tree/master/test/files diff --git a/rep-0142.rst b/rep-0142.rst index e5b7d5865..6088bbbaf 100644 --- a/rep-0142.rst +++ b/rep-0142.rst @@ -179,7 +179,7 @@ References (http://www.ros.org/reps/rep-0108.html) .. [2] REP 127: Specification of package manifest format - (http://ros.org/reps/rep-0127.html) + (https://ros.org/reps/rep-0127.html) .. [3] REP 131: Groovy Variants (http://www.ros.org/reps/rep-0131.html) diff --git a/rep-0149.rst b/rep-0149.rst index f6c2537f5..ed45fabca 100644 --- a/rep-0149.rst +++ b/rep-0149.rst @@ -1108,7 +1108,7 @@ References ========== .. [1] REP-0127 - (http://ros.org/reps/rep-0127.html) + (https://ros.org/reps/rep-0127.html) .. [2] ROS naming conventions (http://www.ros.org/wiki/ROS/Patterns/Conventions#Naming_ROS_Resources) .. [3] ros-infrastructure/catkin_pkg#43: `"add support for depend tag" @@ -1126,11 +1126,11 @@ References .. [9] Buildsystem mailing list discussion: `"REP-0140: internal review" `_ .. [10] REP-0134 - (http://ros.org/reps/rep-0134.html) + (https://ros.org/reps/rep-0134.html) .. [11] Schema file (https://github.com/ros-infrastructure/rep/blob/master/xsd/package_format3.xsd) .. [12] REP-0140 - (http://ros.org/reps/rep-0140.html) + (https://ros.org/reps/rep-0140.html) .. [13] Discussion on REP-0127 (https://groups.google.com/forum/#!topic/ros-sig-buildsystem/_jRvhXFfsVk) .. [14] Related topic of versioning ROS libraries @@ -1138,7 +1138,7 @@ References .. [15] SO versioning from a package perspective (https://groups.google.com/forum/#!topic/ros-sig-buildsystem/jTB9r3zu580) .. [16] REP-0143 - (http://ros.org/reps/rep-0143.html) + (https://ros.org/reps/rep-0143.html) .. [17] ROS_DISTRO environment variable (https://github.com/ros/ros/blob/b202645dc6bea6d4b9ca408dc703c8c7cc8204d9/core/roslib/env-hooks/10.ros.sh.em#L16) diff --git a/rep-0150.rst b/rep-0150.rst index 915f87228..4747a58fc 100644 --- a/rep-0150.rst +++ b/rep-0150.rst @@ -177,7 +177,7 @@ References (http://www.ros.org/reps/rep-0108.html) .. [2] REP 127: Specification of package manifest format - (http://ros.org/reps/rep-0127.html) + (https://ros.org/reps/rep-0127.html) .. [3] REP 131: Groovy Variants (http://www.ros.org/reps/rep-0131.html) diff --git a/rep-html-template b/rep-html-template index ed2f4e43d..570846936 100644 --- a/rep-html-template +++ b/rep-html-template @@ -30,19 +30,19 @@ DO NOT USE THIS HTML FILE AS YOUR TEMPLATE! REP %(rep)s -- %(title)s (ROS.org) - - - + + + %(stylesheet)s - + diff --git a/rep2html.py b/rep2html.py index a4cfbc041..327ad120d 100755 --- a/rep2html.py +++ b/rep2html.py @@ -60,7 +60,7 @@ COMMENT = """""" @@ -202,34 +202,9 @@ def fixfile(inpath, input_lines, outfile): 'version': '', 'title': 'REP '+rep+" -- "+title, 'stylesheet': ( - ''), + ''), } - if 0: - if title: - print(' %s' % cgi.escape(title), file=outfile) - - print( - ' \n' - '\n' - '\n' - '\n' - '\n' - '', file=outfile) - real_outfile = outfile try: @@ -449,8 +424,7 @@ def push_rep(htmlfiles, rstfiles, username, verbose, local=0): #chmod_cmd = "ssh %s%s chmod" % (username, HOST) files = htmlfiles[:] files.extend(rstfiles) - files.append("style.css") - files.append("rep.css") + files.append("css/rep.css") filelist = SPACE.join(files) rc = os.system("%s %s %s %s" % (copy_cmd, quiet, filelist, target)) if rc: diff --git a/style.css b/style.css deleted file mode 100644 index 064fe688c..000000000 --- a/style.css +++ /dev/null @@ -1,19 +0,0 @@ -body { margin: 0px; - padding: 0px; } -.navigation { width: 100%; - background: #99ccff; } -.navigation .navicon { width: 150px; - height: 35; } -.navigation .textlinks { padding-left: 1em; - text-align: left; } - -.header { margin-top: 0.5em; } -.header, .content { margin-left: 1em; - margin-right: 1em; } - -.header table td { text-align: left; } -.header table th { text-align: right; - font-family: sans-serif; - padding-right: 0.5em; } - -h3 { font-family: sans-serif; }