Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate Vocabularies document #255

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@ cmake_install.cmake
install_manifest.txt
CTestTestfile.cmake
.editorconfig
.DS_Store
/zip/*
!/zip/*.docx
!/zip/*.zip
5 changes: 5 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# OData Specification Drafts

This repository contains working drafts for OData specifications:

* [OData Vocabularies Version 4.0 - Committee Specification Draft 02 / Public Review Draft 02](odata-vocabularies/odata-vocabularies.html)
4,666 changes: 4,666 additions & 0 deletions docs/odata-vocabularies/odata-vocabularies.html

Large diffs are not rendered by default.

1,844 changes: 1,844 additions & 0 deletions docs/odata-vocabularies/odata-vocabularies.md

Large diffs are not rendered by default.

Binary file added docs/odata-vocabularies/odata-vocabularies.pdf
Binary file not shown.
91 changes: 91 additions & 0 deletions docs/odata-vocabularies/styles/markdown-styles-v1.7.3b.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
/* OASIS specification styles for HTML generated from Markdown or similar sources */
/* usually used after basic w3.css */
/* Paul Knight 2018-09-27 */
/* pk 2018-10-01 - v1.2 reduced section header and title (h*) font sizes */
/* pk 2018-10-02 - v1.3 added right margin; allowed text wrapping in code blocks and scrolling for overflowing text */
/* pk 2018-10-19 - v1.4 added display:inline to avoid page-wide background coloring */
/* pk 2018-10-25 - v1.5 added use of <h6> as citation tag for References section or elsewhere */
/* pk 2018-10-26 - v1.5.1 (experimental) and v1.6 added use of <hr /> as a page break when generating PDF from the HTML */
/* pk 2018-11-14 - v1.6.1 - lighter gray background color for code blocks */
/* pk 2019-02-18 - v1.7 - Use Liberation Sans and Liberation Mono fonts if possible */
/* pk 2019-02-18 - v1.7.1 (experimental) changed px to pt (and reduced numbers) for fonts and tables; added bigtitle style */
/* pk 2019-05-23 - v1.7.2 (based on 1.7.1) changed monospace "code" font to Courier New */
/* pk 2019-08-01 - v1.7.3 substitute PostScript name for fonts (LiberationSans for "Liberation Sans" and CourierNew for "Courier New") to address a flaw in "wkhtmltopdf" which rendered all text as bold. Changed "bigtitle" to "h1big"*/
/* dk 2020-10-21 - v1.7.3a (unofficial for jadn, based on 1.7.3) update block quotes and code blocks */
/* Heiko Theißen 2023-06-02 - v1.7.3b (unofficial for odata-data-aggregation-ext, based on v1.7.3a) include local font names "Liberation Sans" and "Courier New" */

body {
margin-left: 3pc;
margin-right: 3pc;
font-family: LiberationSans, "Liberation Sans", Arial, Helvetica, sans-serif;
font-size:12pt;
line-height:1.2;
}

html{overflow-x:auto}

/* styles for section headings - levels 1-5 (maybe include heading1, etc. later) */
h1{font-size:18pt}h2{font-size:14pt}h3{font-size:13pt}h4{font-size:12pt}h5{font-size:11pt}
h1big{font-size: 24pt}
h1,h2,h3,h4,h5,h1big{font-family: LiberationSans, "Liberation Sans", Arial, Helvetica, sans-serif;font-weight: bold;margin:8pt 0;color: #446CAA}
/* style for h6, for use as Reference tag */
h6{font-size:12pt; line-height:1.0}
h6{font-family: LiberationSans, "Liberation Sans", Arial, Helvetica, sans-serif;font-weight: bold;margin:0pt;}
/* not needed - can just use brackets in the label itself */
/* h6::before {content: "["} */
/* h6::after {content: "]"} */

/* style for hr to insert a page break before each ruled line (generated in markdown by 3 or more hyphens alone on a line) */
hr{page-break-before: always;}


/* Table styles - bordered with option for striped */
table {
border-collapse: collapse;
}

table {
border-collapse:collapse;
border-spacing:0;
width:100%;
display:table;
font-size:12pt;
margin-top: 6pt;
}

table, th, td {
border: 1pt solid black;
padding:6pt 6pt;
text-align:left;
vertical-align:top;
}
th {
color:#ffffff;
background-color: #446CAA;
}
/* "table-striped" tag is not generated by pandoc - add manually in HTML if wanted */
.table-striped tbody tr:nth-child(even){background-color:#d6f3ff}

/* style for code blocks */
pre {
background-color:#f0f0f0;
padding: 6px;
}

code,kbd,samp{
font-family:CourierNew, "Courier New", monospace;
white-space: pre-wrap;
font-size: 10pt;
}

/* offset block quote */
blockquote {
background-color:#f0f0f0;
padding-left: 10px;
border-left: solid lightgray 6px;
}

/* space bullets a bit */
li {
margin: 3px 0;
}
232 changes: 232 additions & 0 deletions docs/odata-vocabularies/styles/odata.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
a:target {
background-color: yellow;
}

a[href^="#_"],
a[href^="#OData"]:not(a[href^="#OData4"]),
a[href^="#rfc"],
a[href^="#XML-"] {
font-weight: bold;
}

a[href^="#_"]::before,
a[href^="#OData"]:not(a[href^="#OData4"])::before,
a[href^="#rfc"]::before,
a[href^="#XML-"]::before {
content: "[";
font-weight: bold;
}

a[href^="#_"]::after,
a[href^="#OData"]:not(a[href^="#OData4"])::after,
a[href^="#rfc"]::after,
a[href^="#XML-"]::after {
content: "]";
font-weight: bold;
}

.toc li {
list-style-type: none;
}

.example,
.example table {
font-size: smaller;
}

.example p,
.example li {
font-style: italic;
}

.rep {
border-left: solid windowtext 1pt;
padding-left: 8pt;
}

table {
width: auto;
}

.example table,
.example th,
.example td {
padding: 2pt 6pt;
white-space: nowrap;
}

.example td em {
font-weight: bold;
color: blue;
}

.example td[rowspan] {
text-align: right;
vertical-align: middle;
border-style: dotted;
}

.example th[colspan] {
text-align: center;
}

.example-data {
position: relative;
}

.example-data div {
position: absolute;
}

.example-data p {
font-style: unset !important;
}

.example-data svg {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}

.cross tbody tr:first-of-type,
.cross tbody tr:nth-of-type(2),
.cross td:first-of-type,
.cross td:nth-of-type(2) {
font-weight: bold;
color: white;
background-color: #446CAA
}

.cross tbody tr:first-of-type td:first-of-type,
.cross tbody tr:nth-of-type(2) td:first-of-type,
.cross tbody tr:first-of-type td:nth-of-type(2),
.cross tbody tr:nth-of-type(2) td:nth-of-type(2) {
border: none;
background-color: white;
}

.example-data th:first-of-type:not(:last-of-type),
.legend tbody tr:first-of-type {
background-color: green;
}

.nav-2 th:nth-of-type(2),
.nav-3 th:nth-of-type(3),
.nav-4 th:nth-of-type(4),
.nav-5 th:nth-of-type(5),
.nav-6 th:nth-of-type(6),
.legend tbody tr:last-of-type {
background-color: rgb(255, 128, 0);
}

.key-1 th:first-of-type {
background-color: olive;
}

.obj-1 th:first-of-type,
.obj-2 th:nth-of-type(2),
.obj-3 th:nth-of-type(3) {
background-color: green;
}

.temp-2 th:nth-of-type(2),
.temp-4 th:nth-of-type(4) {
background-color: mediumseagreen;
}

.legend td {
font-weight: bold;
color: white;
}

.example-data svg>path {
fill: none;
stroke: black;
stroke-width: 2;
}

p code,
li code,
h1 code,
h2 code,
h3 code,
h4 code,
h5 code,
h6 code,
td>code {
font-family: MJXZERO, MJXTEX-T;
font-size: 1em;
line-height: 0;
}

.example p code,
.example li code {
font-style: initial;
}

.example pre,
.rep {
margin-left: 40px;
}

.indent {
margin-left: 40px;
}

td pre {
padding: 0;
margin: 0;
}

h1 code,
h2 code,
h3 code,
h4 code,
h5 code,
h6 code {
font-size: unset;
}

mjx-container {
font-size: unset !important;
}

mjx-container[display=true] {
text-align: left !important;
margin-left: 40px !important;
}

/* The following rule enables typewriter single quotes in maths, like $\hbox{\tt{'$Q$'}}$ */
mjx-c.mjx-c2019::before {
content: "\27" !important;
padding-right: 0.525em !important;
font-family: MJXZERO, MJXTEX-T;
}

code .er {
color: unset !important;
font-weight: unset !important;
}

hr:first-of-type {
page-break-before: avoid;
}

h1,
h2,
h3,
h4,
h5,
h6 {
page-break-after: avoid;
}

td {
page-break-inside: avoid;
}

h2[id="22-example-data"] {
page-break-before: always;
}
28 changes: 28 additions & 0 deletions lib/vocab2html.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/usr/bin/env node

const filter = require("pandoc-filter");

var vocab;

filter.stdio(function ({ t, c }, format, meta) {
var m;
if (
t === "RawInline" &&
(m = c[1].match(/^<a name="(.*?)Vocabulary" href="#\1Vocabulary">$/))
)
vocab = m[1];
else if (t === "RawInline" && (m = c[1].match(/^<a name="(.*?)">$/))) {
c[1] = `<a name="${vocab}-${m[1]}">`;
return filter.RawInline(...c);
} else if (t === "Link" && !/^https?:\/\//.test(c[2][0])) {
if (c[2][0].startsWith("#"))
c[2][0] = "#" + (vocab ? vocab + "-" : "") + c[2][0].substring(1);
else if ((m = c[2][0].match(/^Org\.OData\.(.*?)\.V1\.md#/)))
c[2][0] = `#${m[1]}-${c[2][0].substring(m[0].length)}`;
else
c[2][0] =
"https://oasis-tcs.github.io/odata-vocabularies/vocabularies/" +
c[2][0];
return filter.Link(...c);
}
});
Loading