Mercurial > p > roundup > code
view website/www/_static/style.css @ 8044:f9eaaa63fda2
build: update website build to sync built files
Sourceforge only supports python 2.7. Newer version of sphinx are
required to build docs and they don't work with 2.7.
Set up rsync targets that:
1) copy html build directory to sourceforge target directory
(dev_docs, production and user home directory)
2) backup existing sourceforge target directory re-sync so it
can be served without any missing files.
The Makefile now check to see if .orig or *~ files are present in the
html build tree. It lists the garbage file and fails if so.
Also inserts a .htaccess into the tree to prevent access to:
.buildinfo file
docs_backup-* files
*.orig
*~
The first one is a build artifact from newer version of sphinx.
The second is the backup directory created with all the original files
before a rsync from the local system is done to sourceforge. The backup
directory is timestamped with the time of its sync.
The last two are probably redundant since make html will fail if they
exist.
To rollback a sync:
move the target directory to a new name.
move the backup directory (in the renamed target directory) to the
old target directory name.
I added the --delete flag to remove files missing from the html
directory. Using the -no-times flags will create all new files with
the current directory. Using the --backup, --backup-dir flags backs up
all replaced/deleted files to backup-dir. The --exclude flag preserves
the backup directories on the sourceforge side. Without --exclude the
-delete flag would remove these backup-dir's. Note that
--delete-exclude must not be used otherwise the backup directories
will be deleted.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 26 Jun 2024 19:11:35 -0400 |
| parents | 9ed6f48c43c5 |
| children | 878cec551d86 |
line wrap: on
line source
/* layout*/ /* Set up fluid type scale. Major third for smaller screens and perfect fourth for larger screens. Allow override using --font-level-X. https://utopia.fyi/type/calculator?c=320,16,1.25,1280,18,1.333,4,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */ :root { --_font-level_-2: var(--font-level_-2, clamp(0.63em, 0.64rem + -0.01vw, 0.64em) ); --_font-level_-1: var(--font-level_-1, clamp(0.80rem, 0.79rem + 0.07vw, 0.84rem) ); --_font-level-0: var(--font-level-0, clamp(1rem, 0.96rem + 0.21vw, 1.13rem) ); --_font-level-1: var(--font-level-1, clamp( 1.25 * var(--_font-level-0), 1.17rem + 0.42vw, 1.5rem) ); --_font-level-2: var(--font-level-2, clamp( 1.25 * var(--_font-level-1), 1.42rem + 0.73vw, 2rem) ); --_font-level-3: var(--font-level-3, clamp( 1.25 * var(--_font-level-2), 1.72rem + 1.19vw, 2.66rem) ); --_font-level-4: var(--font-level-4, clamp( 1.25 * var(--_font-level-3), 2.07rem + 1.85vw, 3.55rem) ); } * + * { margin-block-start: 1.2em;} /* shrink spacing between list elements in tables of contents, badge displays */ div.toctree-wrapper * + *, div.contents * + *, div.release_info * { margin-block-start: 0.25em; } h1, h2, h3, h4, h5, h6 { line-height: 1.1; /* Larger spacing before header and smaller after to make header part of following section */ margin-block-end: 0.3em; } h1 { font-size: var(--_font-level-4); } /* remove whitespace at top of main column */ main h1 { margin-block-start: 0; } h2 { font-size: var(--_font-level-3); } h3 { font-size: var(--_font-level-2); } h4 { font-size: var(--_font-level-1); } /* snug header up to first paragraph of it's section. */ :is(h1,h2,h3,h4,h5,h6) + p { margin-block-start: 0; } body { background-color: #f5f5f5; color: rgb(20,20,20); font-family: sans-serif, Arial, Helvetica; font-size: var(--_font-level-0); margin:0; padding: 0 3em 0 14em; } /* -14em is size of table of contents/nav */ body > .header { margin: 0 0 0 -14em;} body > header > div.mobile { display:none; } body > .header div.label { font-size: 2em; font-weight: bold; margin: 0.67em 0 0.67em 1em;} body > .footer { margin: 1em 0 1em -14em; clear:both;} body > .navigation { float: left; margin-left: -14em; margin-inline-start: -14em; margin-block-start: unset; width: 14em; } body > .content { margin: 0; width: 100%; } body > .header > #searchbox { position: absolute; right: 1em; top: 1em;} body > .content > #subnav { position: absolute; right: 1.5em; top: 6em;} main { line-height: calc(1.5 * 1em); max-width: 65ch; } /* full bleed for highlighted example code. This works for highlighted code directly in each section. If the example is inside a list, table etc, the list/table is constrained to 65ch and we don't get a full bleed example. div.section *:not(div[class^=highlight-]):not(div[class^=highlight-] *):not(div.section) { max-width: 65ch; } */ /* trying to full bleed highlighted code section using using grid layout. Doesn't work as each header level inserts a div.section, so the grid is applied to main > div > div > div.section and highlighted code isn't in a grid display environment anymore. Subgrid would fix this but.... main > div > div { display: grid; grid-template-columns: 65ch 1fr; } main > div > div > * { grid-column: 1/2; } div[class^=highlight] { width: 100%; grid-column: 1 / 3; } */ /* try full bleed without grid. Make everything except the highlight container and its children 65ch in width. However need to explicitly set a width for some reason on the container and children. 100% or other relative width doesn't work. Probably again because of div.section being set to 65ch max width. Can use absolute size values, but how to calculate them when I don't know where the left margin is of the highlight div. main :not(div[class^=highlight-]):not(div[class^=highlight-] *) { position: relative; max-width: 65ch; } div[class^=highlight-], div[class^=highlight-] * { width: calc(100vw - 15em); } */ /* style */ :link { color: rgb(220,0,0); text-decoration: none;} :link:hover { text-decoration: underline solid clamp(1px, .3ex, 4px); text-underline-position: under; } :visited { color: rgb(200,0,0); text-decoration: none;} :visited:hover { /* would like to change from solid line to dashed, but because of privacy abusing people I can't change that value. So settle for darkgrey underline. */ text-decoration-color: darkgrey; } a.toc-backref { color: #000000; } .header h1 { margin-left: 1em; } .menu { padding: 0; margin-right: 1em;} .menu ul { padding: 0; margin: 0; } .menu li { margin: 5pt 0; } .menu > ul > li > * { display: block; padding: 2pt 2pt 2pt 10pt; border: solid thin #dadada; background-color:#ffffff; } .menu > ul > li.current > * { background-color: #f0f0f0; border-block-end: solid medium #cccccc; } .menu ul li:first-child { margin-top:0;} .menu ul { list-style-type:none;} /* sub-menus are indented */ .menu > ul > li > ul, .menu > ul > li.current > ul { border:none; background-color: inherit; } .menu ul ul { margin-left: 1em; font-size: smaller; } /* sub-menu items draw a separator */ .menu ul ul > li { margin: 0; padding: 0.5em; border: none; border-top: solid thin #dadada; background-color: inherit; } .menu ul ul > li:first-child { border-top: none; } /* make submenu items clickable cross whole width of menu */ .menu ul ul > li > a { display: block; } .menu ul li.toctree-l2.current { background-color: #f0f0f0; border-inline-start: solid 2px rgb(220, 0, 0); padding-block: 1em; } /* related */ div.related { width: 100%; font-size: 90%; } div.related-top { border-bottom: solid thin #dadada;} div.related-bottom { border-top: solid thin #dadada;} div.related ul { margin: 0; padding: 0 0 0 10px; list-style: none; } div.related li { display: inline;} div.related li.right { float: right; margin-right: 5px; } .footer { font-size: small; text-align: center; color: black; } .footer img { vertical-align: middle; } .content { padding: 1em; border: solid thin #dadada; background-color: #f7f7f7; } /* style for the floating release_info badge block on the home page */ #roundup-issue-tracker .release_info { float: right; width: auto; border: solid thin #dadada; background-color:#f5f5f5; padding: 1em; margin: 1em; } table { border-collapse: collapse; border-spacing: 1px; background-color: #fafafa; } table:has(caption) { margin-block: 1em; } table caption { font-weight: bold; font-size: smaller; } table.footnote { font-size: var(--_font-level_-1); position: relative } table.footnote::before { border: 1px solid black; content: ""; left: 0; position: absolute; top: 0; width: 25%; } table.captionbelow { caption-side: bottom; } td { /* pull text away from borders */ padding-inline: 0.5em; } td > p { /* remove top margin on a p inside table cell so that columns with paragraphs align at top of cell rather than leaving a blank margin */ margin-block-start: 0px; } input, textarea { border-width: 1px; } a.headerlink { font-size: 0.8em; margin-left: 0.3em; color: #c99; } div.admonition { padding-inline: 1em; padding-block: 0.25em; border-inline-start: grey solid 4px; background-color: #dfdfdf; } div.admonition.caution { border-inline-start: red solid 4px; } div.admonition.warning { border-inline-start: yellow solid 4px; } p.admonition-title { border-block-end: grey solid 2px; font-weight: bold; font-size: larger; margin-block: 0; } div.admonition.caution p.admonition-title { border-block-end: red solid 2px; } dt { font-weight: bold; margin-block-start: 1em;} dt + dd { margin-block-start: 0.25em; } dd p.first { margin-block-start: 0; } dd > ul:first-child { /* reduce indent with list inside dd. I want to reduce margin-inline-start on dd but :has(> ul:first-child) doesn't work in firefox yet, so use negative margin on ul. */ margin-inline-start: -32px; } #skiplink { display: block; margin-block-start: 1em; margin-inline-start: 1em;} #skiplink a { /* force stuff for screenreader off screen */ position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; padding: 0 0.75em; font-weight: bold; } #skiplink a:focus { position: static; width: auto; height: auto; } /* remove solid black border when focus is around the main section due to activation of skip-link. Page jumps there, that's enough. */ #main:focus-visible {outline: none;} /* Prevent examples from extending outside the viewport */ /*div.highlight > pre { overflow-wrap: anywhere; white-space: break-spaces; }*/ /* Forcing wrap in a pre leads to some confusing line breaks. Use a horizontal scroll. Indicate the scroll by using rounded scroll shadows. https://css-tricks.com/books/greatest-css-tricks/scroll-shadows/ https://blogit.create.pt/pedrolopes/2022/03/24/css-scroll-shadows/ */ div.highlight > pre { overflow-wrap: normal; overflow-x: auto; /* Shadows */ background-image: /* Shadow covers */ linear-gradient(to right, #f5f4d8, #f5f4d8), linear-gradient(to right, #f5f4d8, #f5f4d8), /* Shadow */ radial-gradient(farthest-side at 0px 50%, rgba(0, 0, 20, 0.5), rgba(255, 255, 255, 0)), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 20, 0.5), rgba(255, 255, 255, 0)); /* square shadows */ /* linear-gradient(to right, rgba(0, 0, 0, 0.25), rgba(255, 255, 255, 0)), linear-gradient(to left, rgba(0, 0, 0, 0.25), rgba(255, 255, 255, 0)); */ background-position: left center, right center, left center, right center; background-repeat: no-repeat; background-color: #f5f4d8; background-size: 20px 100%, 20px 100%, 16px 100%, 16px 100%; background-attachment: local, local, scroll, scroll; padding: 0.5em; } /* https://moderncss.dev/totally-custom-list-styles/ make a list use multiple columns */ ul.multicol { display: grid; /* adjust the `min` value to your context */ grid-template-columns: repeat(auto-fill, minmax(25ch, 1fr)); grid-gap: 0 1rem; /* no row gap */ } ul.multicol > * { margin-block-start: 0; /* remove spacing added by * + * here */ } div.file_insert { /* use to insert COPYING into license.txt */ background: #f3f1cc; padding-inline: 0.5em; } table.valign-top tbody td { vertical-align: top; } /* consider highlighting header element that is a target */ /* :target > :is(h1,h2,h3,h4,h5,h6) { background: rgb(254, 227, 227); outline: rgb(254, 227, 227) solid 3px; padding: 0.3em; } */ /* website only */ /* assume desktop reader for local html files, also no contact page for local doc files */ @media only screen and (max-width:960px) { /* setup for layout/page frame */ body { padding-inline-start: unset; /* remove space for float menu */} body > .header { margin-inline-start: unset; margin-block-start: 3em; /* move down from search */} body > .navigation { float: none; margin-block-start: unset; margin-inline-start: unset; width: unset; } body > .navigation li > ul > li { padding-block: 1em; /* move links away from each other */ } #roundup-issue-tracker .note { float: none; /* download box */} body > header > div.label.mobile { /* constrain nav label div */ display: block; margin-inline-start: 0.5em; max-width: 48%; } /* activate jump link and hide default label at top of stacked sidebar */ body > header > div.mobile span.jumplabel { display: block; font-size: small; } body > header > div.non_mobile { display: none; } body > .footer { margin-inline-start: 1em; } /* changes for content */ /* stop paths and things from overflowing the viewport. */ div.content { overflow-wrap: break-word; } /* add space between items in TOC to make hitting the links easier */ li[class^=toctree] { margin-block: 1em; } li[class^=toctree] > ul { margin-top: 1em; } div.contents ul.simple li { padding-block: .5em; } h1 + div.contents > ul:first-child { /* reduce wasted whitespace to left in TOC */ padding-inline-start: 1em; } #subnav { margin-block-end: 1em; min-height: 48px; } /* use for table of links to increase space between links on small devices */ table.linkspacing tr {height: 48px;} ul.multicol a { display: inline-block; min-height: 48px; } } @media only screen and (max-width:512px) { /* prevent searchbox bleed into jumplink@top left. */ #searchbox { max-width: 48%; } #searchbox > form { align-items: flex-end; display: inline-flex; flex-direction: column; } #searchbox > form > input[type=submit] { margin-block: 0.75em; } } /* Contact page */ div#contact table td { white-space: nowrap; padding: 1pt 1em; }
