Skip to content

Commit

Permalink
Add rendering of Extra Header schema documentation via json_schema_fo…
Browse files Browse the repository at this point in the history
…r_humans in separate page
  • Loading branch information
chad-earthscope committed Jan 16, 2023
1 parent 1f70b10 commit 64d1225
Show file tree
Hide file tree
Showing 7 changed files with 218 additions and 23 deletions.
173 changes: 173 additions & 0 deletions _static/css/schema_doc.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
.btn.btn-link {
font-size: 18px;
}

.jsfh-animated-property {
animation: eclair;
animation-iteration-count: 1;
animation-fill-mode: forwards;
animation-duration: .75s;

}

@keyframes eclair {
0%,100% {
transform: scale(1);
}
50% {
transform: scale(1.03);
}
}

.btn.btn-primary {
margin: 10px;
}

.btn.example-show.collapsed:before {
content: "show"
}

.btn.example-show:before {
content: "hide"
}

.description.collapse:not(.show) {
max-height: 100px !important;
overflow: hidden;

display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}

.description.collapsing {
min-height: 100px !important;
}

.collapse-description-link.collapsed:after {
content: '+ Read More';
}

.collapse-description-link:not(.collapsed):after {
content: '- Read Less';
}

.badge {
font-size: 100%;
margin-bottom: 0.5rem;
margin-top: 0.5rem;
}

.badge.value-type {
font-size: 120%;
margin-right: 5px;
margin-bottom: 10px;
}


.badge.default-value {
font-size: 120%;
margin-left: 5px;
margin-bottom: 10px;
}

.badge.restriction {
display: inline-block;
}

.badge.required-property,.badge.deprecated-property,.badge.pattern-property,.badge.no-additional {
font-size: 100%;
margin-left: 10px;
}

.accordion div.card:only-child {
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}

.examples {
padding: 1rem !important;
}

.examples pre {
margin-bottom: 0;
}

.highlight.jumbotron {
padding: 1rem !important;
}

.generated-by-footer {
margin-top: 1em;
text-align: right;
}

/* From https://github.com/richleland/pygments-css/blob/master/friendly.css, see https://github.com/trentm/python-markdown2/wiki/fenced-code-blocks */
.highlight { background: #e9ecef; } /* Changed from #f0f0f0 in the original style to be the same as bootstrap's jumbotron */
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #60a0b0; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #007020; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #60a0b0; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #007020 } /* Comment.Preproc */
.highlight .cpf { color: #60a0b0; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
.highlight .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #007020 } /* Keyword.Pseudo */
.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #902000 } /* Keyword.Type */
.highlight .m { color: #40a070 } /* Literal.Number */
.highlight .s { color: #4070a0 } /* Literal.String */
.highlight .na { color: #4070a0 } /* Name.Attribute */
.highlight .nb { color: #007020 } /* Name.Builtin */
.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
.highlight .no { color: #60add5 } /* Name.Constant */
.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */
.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #007020 } /* Name.Exception */
.highlight .nf { color: #06287e } /* Name.Function */
.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */
.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #bb60d5 } /* Name.Variable */
.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #40a070 } /* Literal.Number.Bin */
.highlight .mf { color: #40a070 } /* Literal.Number.Float */
.highlight .mh { color: #40a070 } /* Literal.Number.Hex */
.highlight .mi { color: #40a070 } /* Literal.Number.Integer */
.highlight .mo { color: #40a070 } /* Literal.Number.Oct */
.highlight .sa { color: #4070a0 } /* Literal.String.Affix */
.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */
.highlight .sc { color: #4070a0 } /* Literal.String.Char */
.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */
.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #4070a0 } /* Literal.String.Double */
.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */
.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
.highlight .sx { color: #c65d09 } /* Literal.String.Other */
.highlight .sr { color: #235388 } /* Literal.String.Regex */
.highlight .s1 { color: #4070a0 } /* Literal.String.Single */
.highlight .ss { color: #517918 } /* Literal.String.Symbol */
.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #06287e } /* Name.Function.Magic */
.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */
.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */
.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */
.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */
.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */
1 change: 1 addition & 0 deletions _static/js/schema_doc.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 15 additions & 3 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
# sys.path.insert(0, os.path.abspath('.'))
import sphinx_rtd_theme

from json_schema_for_humans.generate import generate_from_filename
from json_schema_for_humans.generation_configuration import GenerationConfiguration

# -- Project information -----------------------------------------------------

Expand All @@ -37,8 +39,6 @@
extensions = [
'sphinx_rtd_theme',
'sphinxmark',
'sphinx-jsonschema',
'sphinx_toolbox.collapse',
]

# Add any paths that contain templates here, relative to this directory.
Expand Down Expand Up @@ -80,12 +80,24 @@
html_css_files = [
'css/fdsn_rtd_theme.css',
'css/custom.css',
'css/schema_doc.css',
]

html_js_files = [
'js/sidebar_context.js'
'js/sidebar_context.js',
'js/schema_doc.min.js',
]

# -- Generate JSON schema documentation -------------------------------
jsfh_config = GenerationConfiguration(copy_css=False,
copy_js=False,
expand_buttons=True,
with_footer=False)

generate_from_filename("extra-headers/ExtraHeaders-FDSN-v1.0.schema-2020-12.json",
"extra-headers/ExtraHeaders-FDSN-v1.0.schema.html",
config=jsfh_config)

# Mark as draft, disable for releases
sphinxmark_enable = True

Expand Down
21 changes: 3 additions & 18 deletions extra-headers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,25 +24,10 @@ Extra headers are specified and documented in `JSON Schema <http://json-schema.o
FDSN Reserved Headers
----------------------------

The key named **"FDSN"** with value of an JSON object in the root
container of the extra headers is reserved for definition by the FDSN.
The documentation and schema of these headers are specified in JSON
Schema here:
The **"FDSN"** key at the root of the extra headres are reserved for
definition by the FDSN.

.. collapse:: FDSN Extra Header schema v1.0

.. jsonschema:: extra-headers/ExtraHeaders-FDSN-v1.0.schema.json
:lift_definitions:
:auto_reference:
:auto_target:

|
Download `FDSN Extra Header schema v1.0 <https://raw.githubusercontent.com/iris-edu/miniSEED3/main/extra-headers/ExtraHeaders-FDSN-v1.0.schema.json>`_.

When not present, the boolean values in the FDSN reserved headers
should be considered to be `false` unless otherwise documented. Such
values do not need to be included when the value is `false`.
See :ref:`fdsn-reserved-headers` for documentation of these headers.

See :ref:`example-fdsn-extra-headers` for an example of FDSN extra headers.

Expand Down
24 changes: 24 additions & 0 deletions fdsn-reserved.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
.. _FDSN-reserved-headers:

======================
FDSN Reserved Headers
======================

The **"FDSN"** key at the root of the :ref:`extra-headers` are reserved for
definition by the FDSN. See :ref:`example-fdsn-extra-headers` for an example
of FDSN extra headers.

The FDSN reserved headers are defined and documented in `JSON Schema <http://json-schema.org/>`_.

Download the `FDSN Extra Header schema v1.0 <https://raw.githubusercontent.com/iris-edu/miniSEED3/main/extra-headers/ExtraHeaders-FDSN-v1.0.schema.json>`_.

The documentation and schema of these headers may be browsed here:

.. raw:: html
:file: extra-headers/ExtraHeaders-FDSN-v1.0.schema.html

|
When not present, the boolean values in the FDSN reserved headers
should be considered to be `false` unless otherwise documented. Such
values do not need to be included when the value is `false`.
1 change: 1 addition & 0 deletions index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ such as location, instrument response, etc.
definition
data-encodings
extra-headers
fdsn-reserved
background
appendix
software
Expand Down
3 changes: 1 addition & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
sphinx == 4.*
sphinx-rtd-theme
json_schema_for_humans
sphinxmark
sphinx-jsonschema
sphinx_toolbox

0 comments on commit 64d1225

Please sign in to comment.