From b51052373f1cee08fd0b07d2615d013add83751c Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Wed, 13 Aug 2025 12:53:01 -0400 Subject: [PATCH 1/3] Link to experimental Matlab toolbox --- source/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/index.md b/source/index.md index 66c8a4ec..aafbaae9 100644 --- a/source/index.md +++ b/source/index.md @@ -68,7 +68,7 @@ _What can Cantera do?_ We have a number of examples demonstrating the use of Can some of our interfaces. {bdg-link-primary}`Python ` -{bdg-link-primary}`Matlab (experimental)` +{bdg-link-primary}`Matlab (experimental) ` {bdg-link-primary}`C++ ` ::: @@ -110,7 +110,7 @@ make up Cantera. {bdg-link-primary}`Python ` {bdg-link-primary}`C++ ` -{bdg-link-primary}`Matlab ` +{bdg-link-primary}`Matlab (experimental) ` {bdg-link-primary}`YAML ` ::: From 3f6a8d5b4c05ef84af49a8a1a95731fff58c8c66 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Wed, 13 Aug 2025 18:21:22 -0400 Subject: [PATCH 2/3] Add legacy CSS files for archived pages --- source/_static/legacy/css/code.css | 86 ++++ source/_static/legacy/css/custom.css | 61 +++ source/_static/legacy/css/nikola_ipython.css | 56 +++ source/_static/legacy/css/nikola_rst.css | 79 ++++ source/_static/legacy/css/rst.css | 2 + source/_static/legacy/css/rst_base.css | 424 +++++++++++++++++++ source/_static/legacy/css/theme.css | 237 +++++++++++ 7 files changed, 945 insertions(+) create mode 100644 source/_static/legacy/css/code.css create mode 100644 source/_static/legacy/css/custom.css create mode 100644 source/_static/legacy/css/nikola_ipython.css create mode 100644 source/_static/legacy/css/nikola_rst.css create mode 100644 source/_static/legacy/css/rst.css create mode 100644 source/_static/legacy/css/rst_base.css create mode 100644 source/_static/legacy/css/theme.css diff --git a/source/_static/legacy/css/code.css b/source/_static/legacy/css/code.css new file mode 100644 index 00000000..fc470e48 --- /dev/null +++ b/source/_static/legacy/css/code.css @@ -0,0 +1,86 @@ +/* code.css file generated by Nikola */ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +pre.code .hll, .code .codetable .hll, .highlight pre .hll { background-color: #ffffcc } +pre.code , .code .codetable , .highlight pre { background: #f8f8f8; } +pre.code .c, .code .codetable .c, .highlight pre .c { color: #3D7B7B; font-style: italic } /* Comment */ +pre.code .err, .code .codetable .err, .highlight pre .err { border: 1px solid #FF0000 } /* Error */ +pre.code .k, .code .codetable .k, .highlight pre .k { color: #008000; font-weight: bold } /* Keyword */ +pre.code .o, .code .codetable .o, .highlight pre .o { color: #666666 } /* Operator */ +pre.code .ch, .code .codetable .ch, .highlight pre .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +pre.code .cm, .code .codetable .cm, .highlight pre .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +pre.code .cp, .code .codetable .cp, .highlight pre .cp { color: #9C6500 } /* Comment.Preproc */ +pre.code .cpf, .code .codetable .cpf, .highlight pre .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +pre.code .c1, .code .codetable .c1, .highlight pre .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +pre.code .cs, .code .codetable .cs, .highlight pre .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +pre.code .gd, .code .codetable .gd, .highlight pre .gd { color: #A00000 } /* Generic.Deleted */ +pre.code .ge, .code .codetable .ge, .highlight pre .ge { font-style: italic } /* Generic.Emph */ +pre.code .ges, .code .codetable .ges, .highlight pre .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +pre.code .gr, .code .codetable .gr, .highlight pre .gr { color: #E40000 } /* Generic.Error */ +pre.code .gh, .code .codetable .gh, .highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +pre.code .gi, .code .codetable .gi, .highlight pre .gi { color: #008400 } /* Generic.Inserted */ +pre.code .go, .code .codetable .go, .highlight pre .go { color: #717171 } /* Generic.Output */ +pre.code .gp, .code .codetable .gp, .highlight pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +pre.code .gs, .code .codetable .gs, .highlight pre .gs { font-weight: bold } /* Generic.Strong */ +pre.code .gu, .code .codetable .gu, .highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +pre.code .gt, .code .codetable .gt, .highlight pre .gt { color: #0044DD } /* Generic.Traceback */ +pre.code .kc, .code .codetable .kc, .highlight pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +pre.code .kd, .code .codetable .kd, .highlight pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +pre.code .kn, .code .codetable .kn, .highlight pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +pre.code .kp, .code .codetable .kp, .highlight pre .kp { color: #008000 } /* Keyword.Pseudo */ +pre.code .kr, .code .codetable .kr, .highlight pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +pre.code .kt, .code .codetable .kt, .highlight pre .kt { color: #B00040 } /* Keyword.Type */ +pre.code .m, .code .codetable .m, .highlight pre .m { color: #666666 } /* Literal.Number */ +pre.code .s, .code .codetable .s, .highlight pre .s { color: #BA2121 } /* Literal.String */ +pre.code .na, .code .codetable .na, .highlight pre .na { color: #687822 } /* Name.Attribute */ +pre.code .nb, .code .codetable .nb, .highlight pre .nb { color: #008000 } /* Name.Builtin */ +pre.code .nc, .code .codetable .nc, .highlight pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +pre.code .no, .code .codetable .no, .highlight pre .no { color: #880000 } /* Name.Constant */ +pre.code .nd, .code .codetable .nd, .highlight pre .nd { color: #AA22FF } /* Name.Decorator */ +pre.code .ni, .code .codetable .ni, .highlight pre .ni { color: #717171; font-weight: bold } /* Name.Entity */ +pre.code .ne, .code .codetable .ne, .highlight pre .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +pre.code .nf, .code .codetable .nf, .highlight pre .nf { color: #0000FF } /* Name.Function */ +pre.code .nl, .code .codetable .nl, .highlight pre .nl { color: #767600 } /* Name.Label */ +pre.code .nn, .code .codetable .nn, .highlight pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +pre.code .nt, .code .codetable .nt, .highlight pre .nt { color: #008000; font-weight: bold } /* Name.Tag */ +pre.code .nv, .code .codetable .nv, .highlight pre .nv { color: #19177C } /* Name.Variable */ +pre.code .ow, .code .codetable .ow, .highlight pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +pre.code .w, .code .codetable .w, .highlight pre .w { color: #bbbbbb } /* Text.Whitespace */ +pre.code .mb, .code .codetable .mb, .highlight pre .mb { color: #666666 } /* Literal.Number.Bin */ +pre.code .mf, .code .codetable .mf, .highlight pre .mf { color: #666666 } /* Literal.Number.Float */ +pre.code .mh, .code .codetable .mh, .highlight pre .mh { color: #666666 } /* Literal.Number.Hex */ +pre.code .mi, .code .codetable .mi, .highlight pre .mi { color: #666666 } /* Literal.Number.Integer */ +pre.code .mo, .code .codetable .mo, .highlight pre .mo { color: #666666 } /* Literal.Number.Oct */ +pre.code .sa, .code .codetable .sa, .highlight pre .sa { color: #BA2121 } /* Literal.String.Affix */ +pre.code .sb, .code .codetable .sb, .highlight pre .sb { color: #BA2121 } /* Literal.String.Backtick */ +pre.code .sc, .code .codetable .sc, .highlight pre .sc { color: #BA2121 } /* Literal.String.Char */ +pre.code .dl, .code .codetable .dl, .highlight pre .dl { color: #BA2121 } /* Literal.String.Delimiter */ +pre.code .sd, .code .codetable .sd, .highlight pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +pre.code .s2, .code .codetable .s2, .highlight pre .s2 { color: #BA2121 } /* Literal.String.Double */ +pre.code .se, .code .codetable .se, .highlight pre .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +pre.code .sh, .code .codetable .sh, .highlight pre .sh { color: #BA2121 } /* Literal.String.Heredoc */ +pre.code .si, .code .codetable .si, .highlight pre .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +pre.code .sx, .code .codetable .sx, .highlight pre .sx { color: #008000 } /* Literal.String.Other */ +pre.code .sr, .code .codetable .sr, .highlight pre .sr { color: #A45A77 } /* Literal.String.Regex */ +pre.code .s1, .code .codetable .s1, .highlight pre .s1 { color: #BA2121 } /* Literal.String.Single */ +pre.code .ss, .code .codetable .ss, .highlight pre .ss { color: #19177C } /* Literal.String.Symbol */ +pre.code .bp, .code .codetable .bp, .highlight pre .bp { color: #008000 } /* Name.Builtin.Pseudo */ +pre.code .fm, .code .codetable .fm, .highlight pre .fm { color: #0000FF } /* Name.Function.Magic */ +pre.code .vc, .code .codetable .vc, .highlight pre .vc { color: #19177C } /* Name.Variable.Class */ +pre.code .vg, .code .codetable .vg, .highlight pre .vg { color: #19177C } /* Name.Variable.Global */ +pre.code .vi, .code .codetable .vi, .highlight pre .vi { color: #19177C } /* Name.Variable.Instance */ +pre.code .vm, .code .codetable .vm, .highlight pre .vm { color: #19177C } /* Name.Variable.Magic */ +pre.code .il, .code .codetable .il, .highlight pre .il { color: #666666 } /* Literal.Number.Integer.Long */ +.highlight table, .highlight tr, .highlight td, .code table, .code tr, .code td { border-spacing: 0; border-collapse: separate; padding: 0 } +.highlight pre, .code pre { white-space: pre-wrap; line-height: normal } +.highlighttable td.linenos, .codetable td.linenos { vertical-align: top; padding-left: 10px; padding-right: 10px; user-select: none; -webkit-user-select: none } +.highlighttable td.linenos code:before, .codetable td.linenos code:before { content: attr(data-line-number) } +.highlighttable td.code, .codetable td.code { overflow-wrap: normal; border-collapse: collapse } +.highlighttable td.code code, .codetable td.code code { overflow: unset; border: none; padding: 0; margin: 0; white-space: pre-wrap; line-height: unset; background: none } +.highlight .lineno.nonumber, .code .lineno.nonumber { list-style: none } +table.codetable, table.highlighttable { width: 100%;} +.codetable td.linenos, td.linenos { text-align: right; width: 3.5em; padding-right: 0.5em; background: rgba(127, 127, 127, 0.2) } +.codetable td.code, td.code { padding-left: 0.5em; } diff --git a/source/_static/legacy/css/custom.css b/source/_static/legacy/css/custom.css new file mode 100644 index 00000000..ae9f7353 --- /dev/null +++ b/source/_static/legacy/css/custom.css @@ -0,0 +1,61 @@ +#logo { width: 250px; } +#cards { padding-bottom: 5%; } +.jumbotron-text { text-align: center; padding-bottom: 16px; font-size: 1.5rem; font-weight: 500; } +.jumbotron { background-color: white; margin-top: 30px; margin-bottom: 48px; padding: 0 0; } +.img-container { text-align: center; } + +a.headerlink { visibility: hidden; padding: 0 4px 0 4px; } +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink { + visibility: visible; +} + +.example-header { padding: 20px 0; } +.example-row { padding-bottom: 20px; } + +.tutorials { margin: 40px 0; padding: 0 0 !important; } + +section { margin-top: 20px; margin-bottom: 20px; padding: 0 0; } + +a.docs:hover { background-color: #007994; color: #ffffff; } +a.docs, a.dev-docs, a.release-notes { color: #000000; } +a.dev-docs:hover { background-color: #fd7f03; color: #ffffff; } +a.release-notes:hover { background-color: #c80202; color: #ffffff; } + +.row { margin: 0 0 20px; } + +.docutils.literal { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-weight: bold; + font-size: 1em; + color: #444; + word-break: break-word; +} + +a > tt { + color: inherit; +} + +.section-card { + font-size: 1.25rem; + font-weight: 500; +} + +.footer li { + display: inline-block; + text-decoration: none; +} +.footer li::after { + content: " |"; +} +.footer li:last-of-type::after { + content: ""; +} +.footer-text { + margin-left: 0; + padding-left: 0; +} diff --git a/source/_static/legacy/css/nikola_ipython.css b/source/_static/legacy/css/nikola_ipython.css new file mode 100644 index 00000000..aba37da6 --- /dev/null +++ b/source/_static/legacy/css/nikola_ipython.css @@ -0,0 +1,56 @@ +div.prompt { + padding: 0.6em; + font-size: 13px; + background-color: #E9E9E9; + margin-right: 1em; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +div.output_prompt { + /* 5px right shift to account for margin in parent container */ + margin: 0 5px 0 0px; +} + +div.output_area pre { + font-size: 13px; +} + +div.text_cell_render { + padding: 0px; + color: #333333; +} + +.rendered_html p { + text-align: left; +} + +.rendered_html ul { + margin: 0 0 12px 25px; +} + +.rendered_html :visited { + text-decoration: none; +} + +.rendered_html :link { + text-decoration: none; +} + +.rendered_html pre, .rendered_html code { + background-color: #DDDDDD; + margin: 1em 0em; + font-size: 14px; +} + +.rendered_html pre { + padding-left: 0.5em; + padding-right: 0.5em; + padding-top: 0.05em; + padding-bottom: 0.05em; +} + +.page-content > .content p { + margin: 0 0 0px; +} diff --git a/source/_static/legacy/css/nikola_rst.css b/source/_static/legacy/css/nikola_rst.css new file mode 100644 index 00000000..71a0f843 --- /dev/null +++ b/source/_static/legacy/css/nikola_rst.css @@ -0,0 +1,79 @@ +div.admonition, div.attention, div.caution, div.danger, div.error, +div.hint, div.important, div.note, div.tip, div.warning, div.sidebar, +div.system-message { +/* stolen from Boostrap 4 (.card) */ + margin-bottom: 2rem; + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + color: #212529; + background-clip: border-box; + border: 1px solid rgba(0,0,0,.125); + border-radius: .25rem; + padding: 0; +} + +div.attention, div.caution, div.danger, div.error, div.warning { + /* stolen from Boostrap 3 (.border-danger) */ + border-color: #dc3545!important; +} + +div.admonition p, div.hint p, +div.important p, div.note p, +div.tip p, div.sidebar p, +div.attention p, div.caution p, +div.danger p, div.error p, +div.warning p, div.system-message p { + padding-left: 1rem; + padding-right: 1rem; +} + +div.admonition p.admonition-title, div.hint p.admonition-title, +div.important p.admonition-title, div.note p.admonition-title, +div.tip p.admonition-title, div.sidebar p.sidebar-title, +div.attention p.admonition-title, div.caution p.admonition-title, +div.danger p.admonition-title, div.error p.admonition-title, +div.warning p.admonition-title, div.system-message p.system-message-title { +/* stolen from Boostrap 4 (.card .card-header) */ + font-weight: 400; + font-size: 1.25rem; + padding: .75rem 1.25rem; + margin-bottom: 1rem; + background-color: rgba(0,0,0,.03); + border-bottom: 1px solid rgba(0,0,0,.125); +} + +div.attention p.admonition-title, div.caution p.admonition-title, +div.danger p.admonition-title, div.error p.admonition-title, +div.warning p.admonition-title, div.system-message p.system-message-title { + /* stolen from Boostrap 4 (.card .card-header .bg-danger) */ + background-color: #dc3545; + color: white; +} + +div.sidebar { + margin-right: 0; +} + +/* Improved margin overrides */ +div.topic, +pre.literal-block, +pre.doctest-block, +pre.math, +pre.code, +div.code { + margin-left: 1rem; + margin-right: 1rem; +} + +div.code { + margin-bottom: 1rem; +} diff --git a/source/_static/legacy/css/rst.css b/source/_static/legacy/css/rst.css new file mode 100644 index 00000000..03424a8d --- /dev/null +++ b/source/_static/legacy/css/rst.css @@ -0,0 +1,2 @@ +@import url("rst_base.css"); +@import url("nikola_rst.css"); diff --git a/source/_static/legacy/css/rst_base.css b/source/_static/legacy/css/rst_base.css new file mode 100644 index 00000000..51f92b46 --- /dev/null +++ b/source/_static/legacy/css/rst_base.css @@ -0,0 +1,424 @@ +/* Minimal style sheet for the HTML output of Docutils. */ +/* */ +/* :Author: Günter Milde, based on html4css1.css by David Goodger */ +/* :Id: $Id: minimal.css 8642 2021-03-26 13:51:14Z milde $ */ +/* :Copyright: © 2015 Günter Milde. */ +/* :License: Released under the terms of the `2-Clause BSD license`_, */ +/* in short: */ +/* */ +/* Copying and distribution of this file, with or without modification, */ +/* are permitted in any medium without royalty provided the copyright */ +/* notice and this notice are preserved. */ +/* */ +/* This file is offered as-is, without any warranty. */ +/* */ +/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */ + +/* This CSS2.1_ stylesheet defines rules for Docutils elements without */ +/* HTML equivalent. It is required to make the document semantic visible. */ +/* */ +/* .. _CSS2.1: http://www.w3.org/TR/CSS2 */ +/* .. _validates: http://jigsaw.w3.org/css-validator/validator$link */ + +/* titles */ +p.topic-title, +p.admonition-title, +p.system-message-title { + font-weight: bold; +} +p.sidebar-title, +p.rubric { + font-weight: bold; + font-size: larger; +} +p.rubric { + color: maroon; +} +p.subtitle, +p.section-subtitle, +p.sidebar-subtitle { + font-weight: bold; + margin-top: -0.5em; +} +h1 + p.subtitle { + font-size: 1.6em; +} +h2 + p.section-subtitle, a.toc-backref { + color: black; + text-decoration: none; +} + +/* Warnings, Errors */ +.system-messages h2, +.system-message-title, +span.problematic { + color: red; +} + +/* Inline Literals */ +.docutils.literal { + font-family: monospace; + white-space: pre-wrap; +} +/* do not wrap at hyphens and similar: */ +.literal > span.pre { white-space: nowrap; } + +/* Lists */ + +/* compact and simple lists: no margin between items */ +.simple li, .simple ul, .simple ol, +.compact li, .compact ul, .compact ol, +.simple > li p, dl.simple > dd, +.compact > li p, dl.compact > dd { + margin-top: 0; + margin-bottom: 0; +} + +/* Table of Contents */ +.topic.contents { margin: 0.5em 0; } +.topic.contents ul.auto-toc { + list-style-type: none; + padding-left: 1.5em; +} + +/* Enumerated Lists */ +ol.arabic { list-style: decimal } +ol.loweralpha { list-style: lower-alpha } +ol.upperalpha { list-style: upper-alpha } +ol.lowerroman { list-style: lower-roman } +ol.upperroman { list-style: upper-roman } + +/* Definition Lists and Derivatives */ +dt .classifier { font-style: italic } +dt .classifier:before { + font-style: normal; + margin: 0.5em; + content: ":"; +} +/* Field Lists and similar */ +/* bold field name, content starts on the same line */ +dl.field-list > dt, +dl.option-list > dt, +dl.docinfo > dt, +dl.footnote > dt, +dl.citation > dt { + font-weight: bold; + clear: left; + float: left; + margin: 0; + padding: 0; + padding-right: 0.5em; +} +/* Offset for field content (corresponds to the --field-name-limit option) */ +dl.field-list > dd, +dl.option-list > dd, +dl.docinfo > dd { + margin-left: 9em; /* ca. 14 chars in the test examples, fit all Docinfo fields */ +} +/* start field-body on a new line after long field names */ +dl.field-list > dd > *:first-child, +dl.option-list > dd > *:first-child +{ + display: inline-block; + width: 100%; + margin: 0; +} +/* field names followed by a colon */ +dl.field-list > dt:after, +dl.docinfo > dt:after { + content: ":"; +} + +/* Bibliographic Fields (docinfo) */ +dl.docinfo pre.address { + font: inherit; + margin: 0.5em 0; +} +dl.docinfo > dd.authors > p { margin: 0; } + +/* Option Lists */ +dl.option-list > dt { font-weight: normal; } +span.option { white-space: nowrap; } + +/* Footnotes and Citations */ +dl.footnote.superscript > dd { margin-left: 1em; } +dl.footnote.brackets > dd { margin-left: 2em; } +dl.footnote > dt { font-weight: normal; } +a.footnote-reference.brackets:before, +dt.label > span.brackets:before { content: "["; } +a.footnote-reference.brackets:after, +dt.label > span.brackets:after { content: "]"; } +a.footnote-reference.superscript, +dl.footnote.superscript > dt.label { + vertical-align: super; + font-size: small; +} +dt.label > span.fn-backref { + margin-left: 0.2em; + font-weight: normal; +} +dt.label > span.fn-backref > a { font-style: italic; } + +/* Alignment */ +.align-left { + text-align: left; + margin-right: auto; +} +.align-center { + clear: both; + text-align: center; + margin-left: auto; + margin-right: auto; +} +.align-right { + text-align: right; + margin-left: auto; +} +.align-top { vertical-align: top; } +.align-middle { vertical-align: middle; } +.align-bottom { vertical-align: bottom; } + +/* reset inner alignment in figures and tables */ +figure.align-left, figure.align-right, +table.align-left, table.align-center, table.align-right { + text-align: inherit; +} + +/* Text Blocks */ +blockquote, +div.topic, +aside.topic { + margin: 1em 2em; +} +.sidebar, +.admonition, +.system-message { + border: thin solid; + margin: 1em 2em; + padding: 0.5em 1em; +} +.sidebar { + width: 30%; + max-width: 26em; + float: right; + clear: right; +} +div.line-block { display: block; } +div.line-block div.line-block, pre { margin-left: 2em; } + +/* Code line numbers: dropped when copying text from the page */ +pre.code .ln { display: none; } +pre.code code:before { + content: attr(data-lineno); /* …, none) fallback not supported by any browser */ + color: gray; +} + +/* Tables */ + +td > p:first-child, th > p:first-child { margin-top: 0; } +td > p, th > p { margin-bottom: 0; } + +.borderless td, .borderless th { + border: 0; + padding: 0; + padding-right: 0.5em /* separate table cells */ +} + +/* CSS31_ style sheet for the output of Docutils HTML writers. */ +/* Rules for easy reading and pre-defined style variants. */ +/* */ +/* :Author: Günter Milde, based on html4css1.css by David Goodger */ +/* :Id: $Id: plain.css 8636 2021-03-19 00:23:33Z milde $ */ +/* :Copyright: © 2015 Günter Milde. */ +/* :License: Released under the terms of the `2-Clause BSD license`_, */ +/* in short: */ +/* */ +/* Copying and distribution of this file, with or without modification, */ +/* are permitted in any medium without royalty provided the copyright */ +/* notice and this notice are preserved. */ +/* */ +/* This file is offered as-is, without any warranty. */ +/* */ +/* .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause */ +/* .. _CSS3: http://www.w3.org/TR/CSS3 */ + + +/* Document Structure */ +/* ****************** */ + +/* Transitions */ +hr.docutils { + width: 80%; + margin-top: 1em; + margin-bottom: 1em; + clear: both; +} + +dl > dd { + margin-bottom: 0.5em; +} + +/* Lists */ +/* ===== */ + +/* Separate list entries in compound lists */ +dl > dd, ol > li, + +/* Definition Lists */ +/* Indent lists nested in definition lists */ +/* (:only-child is new in CSS 3) */ +dd > ul:only-child, dd > ol:only-child { padding-left: 1em; } + +/* Description Lists */ +/* styled like in most dictionaries, encyclopedias etc. */ +dl.description > dt { + font-weight: bold; + clear: left; + float: left; + margin: 0; + padding: 0; + padding-right: 0.5em; +} + +/* Field Lists */ + +/* example for custom field-name width */ +dl.field-list.narrow > dd { + margin-left: 5em; +} +/* run-in: start field-body on same line after long field names */ +dl.field-list.run-in > dd p { + display: block; +} + +/* Bibliographic Fields */ + +/* generally, bibliographic fields use special definition list dl.docinfo */ +/* but dedication and abstract are placed into "topic" divs */ +div.abstract p.topic-title { + text-align: center; +} +div.dedication { + margin: 2em 5em; + text-align: center; + font-style: italic; +} +div.dedication p.topic-title { + font-style: normal; +} + +/* Text Blocks */ +/* =========== */ + +/* Literal Blocks */ +pre.literal-block, pre.doctest-block, +pre.math, pre.code { + font-family: monospace; +} + +/* Block Quotes */ +blockquote > table, +div.topic > table { + margin-top: 0; + margin-bottom: 0; +} +blockquote p.attribution, +div.topic p.attribution { + text-align: right; + margin-left: 20%; +} + +/* Tables */ +/* ====== */ + +/* th { vertical-align: bottom; } */ + +table tr { text-align: left; } + +/* "booktabs" style (no vertical lines) */ +table.booktabs { + border: 0; + border-top: 2px solid; + border-bottom: 2px solid; + border-collapse: collapse; +} +table.booktabs * { + border: 0; +} +table.booktabs th { + border-bottom: thin solid; +} + +/* numbered tables (counter defined in div.document) */ +table.numbered > caption:before { + counter-increment: table; + content: "Table " counter(table) ": "; + font-weight: bold; +} + +/* Explicit Markup Blocks */ +/* ====================== */ + +/* Footnotes and Citations */ +/* ----------------------- */ + +/* line on the left */ +dl.footnote { + padding-left: 1ex; + border-left: solid; + border-left-width: thin; +} + +/* Directives */ +/* ---------- */ + +/* Body Elements */ +/* ~~~~~~~~~~~~~ */ + +/* Images and Figures */ + +/* let content flow to the side of aligned images and figures */ +figure.align-left, +img.align-left, +video.align-left, +object.align-left { + clear: left; + float: left; + margin-right: 1em; +} +figure.align-right, +img.align-right, +video.align-right, +object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +/* Numbered figures */ +figure.numbered > figcaption > p:before { + counter-increment: figure; + content: "Figure " counter(figure) ": "; + font-weight: bold; +} + +/* Admonitions and System Messages */ +.caution p.admonition-title, +.attention p.admonition-title, +.danger p.admonition-title, +.error p.admonition-title, +.warning p.admonition-title, +div.error { + color: red; +} + +/* Sidebar */ +/* Move right. In a layout with fixed margins, */ +/* it can be moved into the margin. */ +aside.sidebar { + width: 30%; + max-width: 26em; + margin-left: 1em; + margin-right: -2%; + background-color: #ffffee; +} diff --git a/source/_static/legacy/css/theme.css b/source/_static/legacy/css/theme.css new file mode 100644 index 00000000..472f2e73 --- /dev/null +++ b/source/_static/legacy/css/theme.css @@ -0,0 +1,237 @@ +img { + max-width: 100%; +} + +.titlebox { + text-align: right; +} + + +td.label { + /* Issue #290 */ + background-color: inherit; +} + +.footnote-reference { + /* Issue 290 */ + vertical-align: super; + font-size: xx-small; +} + +.caption { + /* Issue 292 */ + text-align: center; + padding-top: 1em; +} + +div.figure > img, +div.figure > a > img { + /* Issue 292 */ + display: block; + margin-left: auto; + margin-right: auto; +} + +blockquote p, blockquote { + font-size: 1.25rem; + font-weight: 300; + line-height: 1.25; +} + +ul.bricks > li { + display: inline; + background-color: lightblue; + padding: 8px; + border-radius: 5px; + line-height: 3; + white-space:nowrap; + margin: 3px; +} + +pre, pre code { + white-space: pre; + word-wrap: normal; + overflow: auto; +} + +article.post-micro { + font-family: Georgia, 'Times New Roman', Times, serif; + font-size: 1.5em; +} + +.image-block { + display: inline-block; +} + +.tags { + padding-left: 0; + margin-left: -5px; + list-style: none; + text-align: center; + +} + +.tags > li { + display: inline-block; +} +.tags > li a { + display: inline-block; + padding: .25em .4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25rem; + background-color: #868e96; +} + +.tags > li a:hover { + color: #fff; + text-decoration: none; + background-color: #6c757d; +} + +.metadata p:before, +.postlist .listdate:after { + content: " — "; +} + +.metadata p:first-of-type:before { + content: ""; +} + +.metadata p { + display: inline; +} + +.posttranslations h3 { + display: inline; + font-size: 1em; + font-weight: bold; +} + +.posttranslations h3:last-child { + display: none; +} + +.entry-content { + margin-top: 1em; +} + +/* for alignment with Bootstrap's .entry-content styling */ +.entry-summary { + margin-top: 1em; +} + +/* Custom page footer */ +#footer { + padding-top: 19px; + color: #777; + border-top: 1px solid #e5e5e5; +} + +/* hat tip bootstrap/html5 boilerplate */ +@media print { + *, *:before, *:after { + font-family: Garamond, Junicode, serif; + } + + body { + font-size: 12pt; + } + + article .entry-title a[href]:after, + article .metadata a[href]:after, + article .tags a[href]:after { + content: ""; + } + + article .metadata .sourceline { + display: none; + } + + article .metadata .linkline a[href]:after { + content: " (" attr(href) ")"; + } + + .navbar { + display: none; + } +} + +pre, .codetable { + border: 1px solid #ccc; + border-radius: 0.25rem; + margin-bottom: 1rem; +} + +pre { + padding: 0.75rem; +} + +.codetable tr:first-child td.linenos { + border-top-left-radius: 0.25rem; +} + +.codetable tr:last-child td.linenos { + border-bottom-left-radius: 0.25rem; +} + +.postindexpager { + padding-bottom: 1rem; +} + +ul.navbar-nav { + margin-top: 0; +} + +ul.pager { + display: flex; + padding-left: 0; + list-style: none; + border-radius: .25rem; + padding-left: 0; + margin: 0.5rem 0; +} + +ul.pager li.previous { + margin-right: auto; + display: inline; +} + +ul.pager li.next { + margin-left: auto; + display: inline; +} + + +ul.pager li a { + display: inline; + position: relative; + padding: .5rem .75rem; + margin-left: -1px; + line-height: 1.25; + border: 1px solid #ddd; + border-radius: .25rem; +} + +pre.code { + white-space: pre-wrap; +} + +.byline a:not(:last-child):after { + content: ","; +} + +/* Override incorrect Bootstrap 4 default */ +html[dir="rtl"] body { + text-align: right; +} + +/* Set a minimum logo height to ensure .svg are displayed if there is no brand text (#3493) */ +#logo { + min-height: 25px; +} From 627b45e67cbf0b023511bfb11389713c422c895b Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Wed, 13 Aug 2025 19:59:45 -0400 Subject: [PATCH 3/3] Deploy htaccess files with mod_rewrite rules --- .github/workflows/main.yaml | 4 +- mod_rewrite/.htaccess | 145 ++++++++++++++++++++++++++++++++++++ mod_rewrite/2.4/.htaccess | 3 + mod_rewrite/3.0/.htaccess | 3 + mod_rewrite/3.1/.htaccess | 5 ++ mod_rewrite/dev/.htaccess | 5 ++ pyproject.toml | 1 + 7 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 mod_rewrite/.htaccess create mode 100644 mod_rewrite/2.4/.htaccess create mode 100644 mod_rewrite/3.0/.htaccess create mode 100644 mod_rewrite/3.1/.htaccess create mode 100644 mod_rewrite/dev/.htaccess diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index ba201b9f..31ed5ee7 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -35,7 +35,9 @@ jobs: python3 -m pip install pdm pdm install --verbose - name: Build the site - run: pdm run build + run: | + pdm run build + pdm run add_htaccess # Create artifact containing output - name: Create archive for website output diff --git a/mod_rewrite/.htaccess b/mod_rewrite/.htaccess new file mode 100644 index 00000000..42970675 --- /dev/null +++ b/mod_rewrite/.htaccess @@ -0,0 +1,145 @@ +RewriteBase "/" + +RewriteRule "^documentation/dev/sphinx/html/_static/doc-versions.json$" "dev/_static/doc-versions.json" [R,L] + +RewriteRule "^assets/img/(.*).png" "_static/img/$1.png" [R,L] +RewriteRule "^assets/css/(.*).css" "_static/css/legacy/$1.css" [R,L] +RewriteRule "^assets/js/copybutton.js" "_static/js/copybutton.js" [R,L] +RewriteRule "^favicon.ico" "_static/img/favicon.png" [R,L] + +RewriteRule "^documentation/docs-(\d\.\d/.*)" "$1" [R=permanent,L] +RewriteRule "^documentation/release_notes/v(\d\.\d)\.\d\.html" "stable/reference/releasenotes/v$1.html" [R=permanent,L] +RewriteRule "^documentation/dev/doxygen/html/(.+)" "dev/cxx/$1" [R=permanent,L] +RewriteRule "^documentation/dev/sphinx/html/_tags/(.+)" "stable/_tags/$1" [R=permanent,L] +RewriteRule "^documentation/?" "stable/reference/" [R=permanent,L] + +RewriteRule "^docs/sphinx/html/index.html" "stable/reference/index.html" [R=permanent,L] +RewriteRule "^docs/sphinx/html/faq.html" "stable/userguide/faq.html" [R=permanent,L] +RewriteRule "^docs/doxygen/html/(.+)" "stable/cxx/$1" [R=permanent,L] +RewriteRule "^stable/index.html" "stable/reference/index.html" [R=permanent,L] +RewriteRule "^dev/index.html" "dev/reference/index.html" [R=permanent,L] +RewriteRule "^3.1/index.html" "3.1/reference/index.html" [R=permanent,L] + +RewriteRule "^science/?$" "stable/reference/index.html" [R=permanent,L] +RewriteRule "^science/index.html" "stable/reference/index.html" [R=permanent,L] +RewriteRule "^science/phases.html" "stable/reference/thermo/phase-thermo.html" [R=permanent,L] +RewriteRule "^science/science-species.html" "stable/reference/thermo/species-thermo.html" [R=permanent,L] +RewriteRule "^science/reactions.html" "stable/reference/kinetics/index.html" [R=permanent,L] +RewriteRule "^science/reactors.html" "stable/reference/reactors/index.html" [R=permanent,L] +RewriteRule "^science/flames.html" "stable/reference/onedim/index.html" [R=permanent,L] +RewriteRule "^science/kinetics.html" "stable/reference/kinetics/index.html" [R=permanent,L] +RewriteRule "^science/(\w+)-thermo.html" "stable/reference/thermo/$1-thermo.html" [R=permanent,L] +RewriteRule "^science/thermodynamics.html" "stable/reference/thermo/index.html" [R=permanent,L] +RewriteRule "^science/thermo.html" "stable/reference/thermo/index.html" [R=permanent,L] +RewriteRule "^science/transport.html" "stable/reference/transport/index.html" [R=permanent,L] +RewriteRule "^docs/sphinx/html/flames.html" "stable/reference/onedim/index.html" [R=permanent,L] +RewriteRule "^docs/sphinx/html/reactors.html" "stable/reference/reactors/index.html" [R=permanent,L] +RewriteRule "^docs/sphinx/html/python/(.+).html" "stable/python/$1.html" [R=permanent,L] + +RewriteRule "^tutorials/input-files.html" "stable/userguide/input-tutorial.html" [R=permanent,L] +RewriteRule "^tutorials/legacy2yaml.html" "stable/userguide/legacy2yaml-tutorial.html" [R=permanent,L] +RewriteRule "^tutorials/yaml/yaml-format.html" "stable/userguide/input-tutorial.html" [R=permanent,L] +RewriteRule "^tutorials/yaml/.*" "stable/userguide/creating-mechanisms.html" [R=permanent,L] +RewriteRule "^(tutorials|docs/sphinx/html)/cxx-guide/compiling.html" "stable/userguide/compiling-cxx.html" [R=permanent,L] +RewriteRule "^(tutorials|docs/sphinx/html)/cxx-guide" "stable/userguide/cxx-tutorial.html" [R=permanent,L] +RewriteRule "^tutorials(.*)" "stable/userguide$1" [R=permanent,L] + +RewriteRule "^develop/index.html" "stable/develop/index.html" [R=permanent,L] +RewriteRule "^install/compiling-install.html" "stable/develop/index.html" [R=permanent,L] +RewriteRule "^install/(macos|windows)-install.html" "stable/install/index.html" [R=permanent,L] +RewriteRule "^install/(.+)-install.html" "stable/install/$1.html" [R=permanent,L] +RewriteRule "^install(.*)" "stable/install$1" [R=permanent,L] +RewriteRule "^downloads?.html" "stable/install/index.html" [R=permanent,L] +RewriteRule "^docs/sphinx/html/install.html" "stable/install/index.html" [R=permanent,L] + +RewriteRule "^(docs/sphinx/html/)?compiling/installation-reqs.html" "stable/develop/compiling/compilation-reqs.html" [R=permanent,L] +RewriteRule "^sphinx/html/compiling.html" +RewriteRule "^(docs/sphinx/html/)?compiling/(scons-)?(.+?)(-dev)?.html" "stable/develop/compiling/$3.html" [R=permanent,L] +RewriteRule "^docs/sphinx/html/compiling.html" "stable/develop/index.html" [R=permanent,L] +Rewriterule "^sphinx/html/search.html(.*)" "stable/search.html$1" [R,L] + +RewriteRule "^blog/index.html" "news-index.html" [R=permanent,L] +RewriteRule "^blog/?$" "news-index.html" [R=permanent,L] +RewriteRule "^blog/(.+)" "news/$1" [R=permanent,L] +RewriteRule "^categories/website.html" "news/category/website.html" [R=permanent,L] +RewriteRule "^categories/(.+)\.html" "news/tag/$1.html" [R=permanent,L] +RewriteRule "^authors/(.+)\.html" "news/author/$1.html" [R=permanent,L] +RewriteRule "^dave.html" "dave-goodwin.html" [R=permanent,L] +RewriteRule "^affiliated-packages.html" "affiliated.html" [R=permanent,L] +RewriteRule "^reference/index.html" "stable/reference/index.html" [R=permanent,L] + +RewriteRule "^science/reactors/constpresmolereactor.html" "stable/reference/reactors/constant-pressure-mole-reactor.html" [R=permanent,L] +RewriteRule "^science/reactors/constpresreactor.html" "stable/reference/reactors/constant-pressure-reactor.html" [R=permanent,L] +RewriteRule "^science/reactors/controlreactor.html" "stable/reference/reactors/controlreactor.html" [R=permanent,L] +RewriteRule "^science/reactors/idealgasconstpresmolereactor.html" "stable/reference/reactors/ideal-gas-constant-pressure-mole-reactor.html" [R=permanent,L] +RewriteRule "^science/reactors/idealgasconstpresreactor.html" "stable/reference/reactors/ideal-gas-constant-pressure-reactor.html" [R=permanent,L] +RewriteRule "^science/reactors/idealgasmolereactor.html" "stable/reference/reactors/ideal-gas-mole-reactor.html" [R=permanent,L] +RewriteRule "^science/reactors/idealgasreactor.html" "stable/reference/reactors/ideal-gas-reactor.html" [R=permanent,L] +RewriteRule "^science/reactors/reactors.html" "stable/reference/reactors/index.html" [R=permanent,L] +RewriteRule "^science/reactors/molereactor.html" "stable/reference/reactors/mole-reactor.html" [R=permanent,L] +RewriteRule "^science/reactors/pfr.html" "stable/reference/reactors/pfr.html" [R=permanent,L] +RewriteRule "^science/reactors/cvodes.html" "stable/develop/reactor-integration.html" [R=permanent,L] +RewriteRule "^science/reactors/extensiblereactor.html" "stable/userguide/extensible-reactor.html" [R=permanent,L] +RewriteRule "^science/reactors/customreactor.html" "stable/userguide/extensible-reactor.html" [R=permanent,L] +RewriteRule "^science/reactors/delegatedreactor.html" "stable/userguide/extensible-reactor.html" [R=permanent,L] + +RewriteRule "^(3.1|dev)/cython/(.+)" "$1/python/$2" [R=permanent,L] +RewriteRule "^docs/sphinx/html/cython/examples/(\w+?)_(.*).html" "stable/examples/python/$1/$2.html" [R=permanent,L] +RewriteRule "^docs/sphinx/html/cython/(.+)" "stable/python/$1" [R=permanent,L] + +RewriteRule "^3.0/sphinx/html/python/(.+)" "3.0/sphinx/html/cython/$1" [R,L] + +RewriteRule "^2.1/doxygen/html/jquery.js" "2.1/sphinx/html/_static/jquery.js" [R,L] +RewriteRule "^(2.\d)/sphinx/html/cython/doxygen/html/(.*)" "$1/doxygen/html/$2" [R,L] + +RewriteRule "^python/(onedim|kinetics|reactors|thermo|transport)/(.*)" "stable/examples/python/$1/$2" [R=permanent,L] + +RewriteRule "^examples(|/|/index.html)$" "stable/examples/index.html" [R=permanent,L] +RewriteRule "^examples/python(|/|/index.html)$" "stable/examples/python/index.html" [R=permanent,L] + +RewriteRule "^examples/python/surface_chemistry/1D_pfr_surfchem.py.html" "stable/examples/python/reactors/1D_pfr_surfchem.html" [R=permanent,L] +RewriteRule "^examples/python/surface_chemistry/catalytic_combustion.py.html" "stable/examples/python/onedim/catalytic_combustion.html" [R=permanent,L] +RewriteRule "^examples/python/surface_chemistry/diamond_cvd.py.html" "stable/examples/python/kinetics/diamond_cvd.html" [R=permanent,L] +RewriteRule "^examples/python/surface_chemistry/lithium_ion_battery.py.html" "stable/examples/python/kinetics/lithium_ion_battery.html" [R=permanent,L] +RewriteRule "^examples/jupyter/electrochemistry/lithium_ion_battery.ipynb.html" "stable/examples/python/kinetics/lithium_ion_battery.html" [R=permanent,L] +RewriteRule "^examples/python/surface_chemistry/sofc.py.html" "stable/examples/python/kinetics/sofc.html" [R=permanent,L] +RewriteRule "^examples/python/multiphase/(.+)\.py\.html" "stable/examples/python/thermo/$1.html" [R=permanent,L] +RewriteRule "^examples/python/multiphase/(.+)\.py" "stable/examples/python/thermo/$1.html" [R=permanent,L] +RewriteRule "^examples/python/(\w+)/(.+)\.py\.html" "stable/examples/python/$1/$2.html" [R=permanent,L] +RewriteRule "^examples/python/(\w+)/(.+)\.py" "stable/examples/python/$1/$2.html" [R=permanent,L] + +RewriteRule "^examples/jupyter/flames/flame_speed_with_convergence_analysis.ipynb.html" "stable/examples/python/onedim/flame_speed_convergence_analysis.html" [R=permanent,L] +RewriteRule "^examples/jupyter/flames/flame_speed_with_sensitivity_analysis.ipynb.html" "stable/examples/python/onedim/flamespeed_sensitivity.html" [R=permanent,L] +RewriteRule "^examples/jupyter/flames/twin_premixed_flame_axisymmetric.ipynb.html" "stable/examples/python/onedim/premixed_counterflow_twin_flame.html" [R=permanent,L] +RewriteRule "^examples/jupyter/input/ck2yaml_demo.ipynb.html" "stable/userguide/ck2yaml-tutorial.html" [R=permanent,L] + +RewriteRule "^examples/jupyter/reactors/1D_packbed.ipynb.html" "stable/examples/python/reactors/1D_packed_bed.html" [R=permanent,L] +RewriteRule "^examples/jupyter/reactors/1D_pfr_surfchem.ipynb.html" "stable/examples/python/reactors/1D_pfr_surfchem.html" [R=permanent,L] +RewriteRule "^examples/jupyter/reactors/batch_reactor_ignition_delay_NTC.ipynb.html" "stable/examples/python/reactors/NonIdealShockTube.html" [R=permanent,L] +RewriteRule "^examples/jupyter/reactors/interactive_path_diagram.ipynb.html" "stable/examples/python/kinetics/interactive_path_diagram.html" [R=permanent,L] +RewriteRule "^examples/jupyter/reactors/nonideal_shock_tube.ipynb.html" "stable/examples/python/reactors/NonIdealShockTube.html" [R=permanent,L] +RewriteRule "^examples/jupyter/reactors/stirred_reactor.ipynb.html" "stable/examples/python/reactors/continuous_reactor.html" [R=permanent,L] + +RewriteRule "^examples/jupyter/thermo/equations_of_state.ipynb.html" "stable/examples/python/thermo/equations_of_state.html" [R=permanent,L] +RewriteRule "^examples/jupyter/thermo/flame_temperature.ipynb.html" "stable/userguide/flame-temperature.html" [R=permanent,L] +RewriteRule "^examples/jupyter/thermo/heating_value.ipynb.html" "stable/userguide/heating-value.html" [R=permanent,L] +RewriteRule "^examples/jupyter.*" "stable/examples/python/index.html" [R=permanent,L] + +# Someday, these MATLAB rules will be updated to point to a non-experimental version of the toolbox +RewriteRule "^examples/matlab/surfreactor\.m\.html" "stable/examples/matlab_experimental/surf_reactor.html" [R,L] +RewriteRule "^examples/matlab/diffflame\.m\.html" "stable/examples/matlab_experimental/diff_flame.html" [R,L] +RewriteRule "^examples/matlab/Plug_Flow_Reactor\.m\.html" "stable/examples/matlab_experimental/plug_flow_reactor.html" [R,L] +RewriteRule "^examples/matlab/index\.html" "stable/examples/matlab_experimental/index.html" [R,L] +RewriteRule "^examples/matlab/(.+)\.m\.html" "stable/examples/matlab_experimental/$1.html" [R,L] + +RewriteRule "^examples/cxx/LiC6-electrode.html" "stable/examples/cxx/LiC6_electrode.html" [R=permanent,L] +RewriteRule "^examples/cxx/gas-transport.html" "stable/examples/cxx/gas_transport.html" [R=permanent,L] +RewriteRule "^examples/cxx/openmp-ignition.html" "stable/examples/cxx/openmp_ignition.html" [R=permanent,L] +RewriteRule "^examples/cxx/bvp.html" "stable/examples/cxx/blasius.html" [R=permanent,L] +RewriteRule "^examples/cxx/jacobian.html" "stable/examples/cxx/derivative_speed.html" [R=permanent,L] +RewriteRule "^examples/cxx/(.+)\.html" "stable/examples/cxx/$1.html" [R=permanent,L] +RewriteRule "^examples/cxx/(.+)-(.+)\.html" "stable/examples/cxx/$1_$2.html" [R=permanent,L] + +RewriteRule "^examples/fortran/demo.f.html" "stable/examples/fortran/f77_demo.html" [R=permanent,L] +RewriteRule "^examples/fortran/index.html" "stable/examples/fortran/index.html" [R=permanent,L] +RewriteRule "^examples/fortran/(\w+)\.(f|f90|cpp).html" "stable/examples/fortran/$1.html" [R=permanent,L] diff --git a/mod_rewrite/2.4/.htaccess b/mod_rewrite/2.4/.htaccess new file mode 100644 index 00000000..fe97394c --- /dev/null +++ b/mod_rewrite/2.4/.htaccess @@ -0,0 +1,3 @@ +RewriteBase "/2.4/" + +RewriteRule "^sphinx/_static/(.+)" "sphinx/html/_static/$1" [R,L] diff --git a/mod_rewrite/3.0/.htaccess b/mod_rewrite/3.0/.htaccess new file mode 100644 index 00000000..29608096 --- /dev/null +++ b/mod_rewrite/3.0/.htaccess @@ -0,0 +1,3 @@ +RewriteBase "/3.0/" + +RewriteRule "^sphinx/html/python/(.+)" "sphinx/html/cython/$1" [R] diff --git a/mod_rewrite/3.1/.htaccess b/mod_rewrite/3.1/.htaccess new file mode 100644 index 00000000..bdfe59af --- /dev/null +++ b/mod_rewrite/3.1/.htaccess @@ -0,0 +1,5 @@ +RewriteBase "/3.1/" + +RewriteRule "^cython/(.+)" "python/$1" [R] +RewriteRule "^cxx/d7/d32/classCantera_1_1Poly1(.*)" "cxx/d2/db3/classCantera_1_1Poly13$1" [L] +RewriteRule "^cxx/dd/d77/classCantera_1_1ConnectorFactory(.*)" "cxx/d0/dc8/classCantera_1_1FlowDeviceFactory$1" [L] diff --git a/mod_rewrite/dev/.htaccess b/mod_rewrite/dev/.htaccess new file mode 100644 index 00000000..64201235 --- /dev/null +++ b/mod_rewrite/dev/.htaccess @@ -0,0 +1,5 @@ +RewriteBase "/dev/" + +RewriteRule "^cython/(.+)" "python/$1" [R] +RewriteRule "^cxx/d2/db3/classCantera_1_1Poly13(.*)" "cxx/d7/d32/classCantera_1_1Poly1$1" [L] +RewriteRule "^cxx/d0/dc8/classCantera_1_1FlowDeviceFactory(.*)" "cxx/dd/d77/classCantera_1_1ConnectorFactory$1" [L] diff --git a/pyproject.toml b/pyproject.toml index af50a503..53608bb9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,3 +42,4 @@ rebuild = { cmd = [ "0", "--open-browser", ] } +add_htaccess = { cmd = "cp -r mod_rewrite/. build/html" }