Mercurial > hg
view doc/style.css @ 40093:726cfc47f17a
contrib: add an utility module to parse test scripts
This patch centralizes the logic to pick up code fragments embedded in
*.t script, in order to:
- apply checking with patterns in check-code.py on such embedded
code fragments
Now, check-code.py completely ignores embedded code
fragments. I'll post another patch series to check them.
- replace similar code path in contrib/import-checker.py
Current import-checker.py has problems below. Fixing each of them
is a little difficult, because parsing logic and pattern strings
are tightly coupled.
- overlook (or mis-detect) the end of inline script in doctest
style
8a8dd6e4a97a fixed a part of this issue, but not enough.
- it overlooks inline script in doctest style at the end of file
(and ignores invalid un-closed heredoc at the end of file, too)
- it overlooks code fragment in styles below
- "python <<EOF" (heredoc should be "cat > file <<EOF" style)
- "cat > foobar.py << ANYLIMIT" (limit mark should be "EOF")
- "cat << EOF > foobar.py" (filename should be placed before limit mark)
- "cat >> foobar.py << EOF" (appending is ignored)
- it is not extensible for other than python code fragments
(e.g. shell script, hgrc file, and so on)
This new module can detect python code fragments in styles below:
- inline script in doctest style (starting by " >>> " line)
- python invocation with heredoc script ("python <<EOF")
- python script in heredoc style (redirected into ".py" file)
As an example of extensibility of new module, this patch also contains
implementation to pick up code fragment below. This will be useful to
add additional restriction for them, for example.
- shell script in heredoc style (redirected into ".sh" file)
- hgrc configuration in heredoc style (redirected into hgrc or $HGRCPATH)
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Thu, 23 Aug 2018 12:25:54 +0900 |
parents | 4b0fc75f9403 |
children |
line wrap: on
line source
/* * Styles for man pages, which match with https://mercurial-scm.org/ * * Color scheme & layout are borrowed from * https://mercurial-scm.org/css/styles.css * * Some styles are from html4css1.css from Docutils, which is in the * public domain. */ body { margin: 0; padding: 0; font-family: sans-serif; } .document { position: relative; /* be a top of absolute positioning */ margin: 1.5em 1.8em; padding: 0; line-height: 1.3; } /* layout: toc to right */ #contents { position: absolute; right: 0; top: 0; width: 26%; } /* layout: others to left */ h1.title, h2.subtitle, .section { width: 72%; } .section .section { width: auto; } table.docinfo { max-width: 72%; } /* headings */ h1, h2, .topic-title, .admonition-title { font-family: "MgOpen Cosmetica", "Lucida Sans Unicode", sans-serif; font-weight: normal; } h1, h2, .topic-title, .admonition-title { margin: 1em 0 0.5em; } h1.title { font-size: 300%; } h2.subtitle, h1 { font-size: 200%; } h2, .topic-title, .admonition-title { font-size: 140%; } /* subtitle starts with lowercase in man pages, but not in HTML */ h2.subtitle:first-letter { text-transform: uppercase; } /* override first/last margin */ .first, h1.title, h2.subtitle { margin-top: 0 !important; } .last, .with-subtitle { margin-bottom: 0 !important; } blockquote, pre, dd .option-list, .field-list { margin: 0.2em 0 1em 2em; } kbd, tt, pre { font-family: monospace; } dt { font-weight: bold; } dd { margin-bottom: 0.5em; } th, td { padding: 0.1em 0.2em; border: 0 none; } th { font-weight: bold; text-align: left; } a:link, a:visited { text-decoration: underline; } a:hover, a:focus { text-decoration: none; } a:link { color: #00b5f1; } a:visited { color: #5c9caf; } a:link.toc-backref, a:visited.toc-backref { text-decoration: none; color: inherit; /* NOTE: `inherit' is not supported by IE6 */ } div.admonition, div.attention, div.caution, div.danger, div.error, div.hint, div.important, div.note, div.tip, div.warning { border-top: 1px #ccc solid; border-bottom: 1px #ccc solid; padding: 0.3em 1em; margin: 1em; } div.note { border-color: #fcc200; } /* * The following styles are from Docutils. * Please refine if necessary. */ table.borderless td, table.borderless th { /* Override padding for "table.docutils td" with "! important". The right padding separates the table cells. */ padding: 0 0.5em 0 0 ! important; } .hidden { display: none; } blockquote.epigraph { margin: 2em 5em; } div.abstract { margin: 2em 5em; } div.dedication { margin: 2em 5em; text-align: center; font-style: italic; } div.figure { margin-left: 2em; margin-right: 2em; } div.footer, div.header { clear: both; font-size: smaller; } div.line-block { display: block; margin-top: 1em; margin-bottom: 1em; } div.line-block div.line-block { margin-top: 0; margin-bottom: 0; margin-left: 1.5em; } div.sidebar { margin: 0 0 0.5em 1em; border: medium outset; padding: 1em; background-color: #ffffee; width: 40%; float: right; clear: right; } div.sidebar p.rubric { font-family: sans-serif; font-size: medium; } div.system-messages { margin: 5em; } div.system-messages h1 { color: red; } div.system-message { border: medium outset; padding: 1em; } div.system-message p.system-message-title { color: red; font-weight: bold; } h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { margin-top: 0.4em; } hr.docutils { width: 75%; } img.align-left { clear: left; } img.align-right { clear: right; } ol.simple, ul.simple { margin-bottom: 1em; } 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; } p.attribution { text-align: right; margin-left: 50%; } p.caption { font-style: italic; } p.credits { font-style: italic; font-size: smaller; } p.label { white-space: nowrap; } p.rubric { font-weight: bold; font-size: larger; color: maroon; text-align: center; } pre.address { margin-bottom: 0; margin-top: 0; font-family: serif; font-size: 100%; } pre.literal-block, pre.doctest-block { margin-left: 2em; margin-right: 2em; } span.classifier { font-family: sans-serif; font-style: oblique; } span.classifier-delimiter { font-family: sans-serif; font-weight: bold; } span.interpreted { font-family: sans-serif; } span.option { white-space: nowrap; } span.pre { white-space: pre; } span.problematic { color: red; } span.section-subtitle { /* font-size relative to parent (h1..h6 element) */ font-size: 80%; } table.citation { border-left: solid 1px gray; margin-left: 1px; } table.footnote { border-left: solid 1px black; margin-left: 1px; } h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { font-size: 100%; } ul.auto-toc { list-style-type: none; } div.contents.local { -moz-column-width: 10em; -moz-column-gap: 1em; -webkit-column-width: 10em; -webkit-column-gap: 1em; }