Add the required resources (images, JS, CSS) for `docwriter'. * docs/reference/.gitignore: Update to ignore `site' folder and other files generated by docwriter. * docs/reference/README: Add docwriter usage information and troubleshooting tips. * docs/reference/markdown: New directory to hold generated markdown files and other resources.color
parent
ae5d1a4cec
commit
53c69ce04f
5 changed files with 315 additions and 2 deletions
@ -1 +1,12 @@ |
||||
# Static site folder |
||||
site/ |
||||
|
||||
# HTML and Markdown files |
||||
*.html |
||||
*.md |
||||
|
||||
# MkDocs Config file |
||||
mkdocs.yml |
||||
|
||||
# Python virtualenv |
||||
env/ |
||||
|
@ -1,5 +1,35 @@ |
||||
After saying `make refdoc' this directory contains the FreeType API |
||||
reference. You need python to make this target. |
||||
After saying `make refdoc' or `make refdoc-venv' the `site/' directory |
||||
contains the FreeType API reference. You need python and pip to make this |
||||
target. |
||||
|
||||
There are two ways to generate the documentation: |
||||
|
||||
1. Using `make refdoc': |
||||
|
||||
- Ensure `python' and `pip' are available. |
||||
- Install pip package `docwriter' with `pip install --user docwriter'. |
||||
- Make target with `make refdoc'. |
||||
- This target can be run offline once required packages are installed. |
||||
|
||||
2. Using `make refdoc-venv' (requires internet access): |
||||
|
||||
- Ensure `python', `pip' and python package `virtualenv' are available. |
||||
- Make target with `make refdoc-venv'. |
||||
- This may or may not require internet access every time depending on |
||||
pip and system caching. |
||||
|
||||
This also works with Jam: Just type `jam refdoc' in the main directory. |
||||
|
||||
Some troubleshooting tips: |
||||
|
||||
* Regularly run `pip install --upgrade docwriter' to check for updates which |
||||
may include bug fixes. |
||||
|
||||
* Ensure that `docwriter' is installed in the same python target that |
||||
`make refdoc' uses (python3/python2/python). |
||||
|
||||
* `pip' and `python' may point to different versions of Python. Check using |
||||
`python --version' and `pip --version'. |
||||
|
||||
* If none of this works, send a mail to `freetype-devel@nongnu.org' or file |
||||
an issue at `https://github.com/freetype/docwriter/issues'. |
||||
|
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,54 @@ |
||||
/* |
||||
Internal link topbar offest adjust Javascript |
||||
Code provided by @makshh on GitHub |
||||
|
||||
Bug report on material-mkdocs |
||||
https://github.com/squidfunk/mkdocs-material/issues/791
|
||||
*/ |
||||
|
||||
// Offset top helper
|
||||
function offsetY(elem) { |
||||
if(!elem) elem = this; |
||||
var y = elem.offsetTop; |
||||
while (elem = elem.offsetParent) { |
||||
y += elem.offsetTop; |
||||
} |
||||
return y; |
||||
} |
||||
|
||||
// If a link on the same page is clicked, calculate the
|
||||
// correct offset and scroll to that part of the page.
|
||||
//
|
||||
var links = document.getElementsByTagName('a'); |
||||
for(var i = 0; i < links.length; i++) { |
||||
links[i].onclick = function (event) { |
||||
if (this.pathname == window.location.pathname && |
||||
this.protocol == window.location.protocol && |
||||
this.host == window.location.host) { |
||||
event.preventDefault(); |
||||
if(this.hash.substr(1)){ |
||||
var o = document.getElementById(this.hash.substr(1)); |
||||
var sT = offsetY(o) - document.getElementsByClassName('md-header')[0].clientHeight; |
||||
window.location.hash = this.hash; |
||||
window.scrollTo(0, sT); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
// Slugify supplied text
|
||||
function slugify(text){ |
||||
text = text.toLowerCase(); |
||||
text = text.replace(" ", "-"); |
||||
return text; |
||||
} |
||||
|
||||
// If there is a hash in the url, slugify it
|
||||
// and replace
|
||||
if(window.location.hash) { |
||||
// Fragment exists
|
||||
slug = slugify(window.location.hash); |
||||
history.replaceState(undefined, undefined, slug) |
||||
//window.location.hash = slug;
|
||||
document.location.replace(window.location.href); |
||||
} |
@ -0,0 +1,218 @@ |
||||
/* Body and page */ |
||||
.wy-nav-content { |
||||
max-width: 90%; |
||||
} |
||||
.md-grid { |
||||
max-width: 90%; |
||||
} |
||||
.md-sidebar--secondary { |
||||
margin-left: 90%; |
||||
} |
||||
p { |
||||
text-align: justify; |
||||
/* margin: 1.5ex 0 1.5ex 0; |
||||
*/ |
||||
} |
||||
/* .md-typeset p{ |
||||
margin: 1em 1em 0 1em; |
||||
} |
||||
*/ |
||||
/* code blocks */ |
||||
pre.colored { |
||||
color: blue; |
||||
} |
||||
pre { |
||||
font-family: monospace; |
||||
background-color: #D6E8FF; |
||||
padding: 2ex 0 2ex 1%; |
||||
overflow-x:auto; |
||||
} |
||||
span.keyword { |
||||
font-family: monospace; |
||||
text-align: left; |
||||
white-space: pre; |
||||
color: #d73a49; |
||||
} |
||||
/* H4 Heading */ |
||||
h4 { |
||||
background-color: #EEEEFF; |
||||
font-size: medium; |
||||
font-style: oblique; |
||||
font-weight: bold; |
||||
/* margin: 3ex 0 1.5ex 9%; |
||||
*/ |
||||
padding: 0.3em 0 0.3em 1%; |
||||
} |
||||
/* Fields table */ |
||||
table.fields { |
||||
width: 90%; |
||||
margin: 1.5ex 0 1.5ex 10%; |
||||
} |
||||
table.fields td.val { |
||||
font-weight: bold; |
||||
text-align: right; |
||||
width: 30%; |
||||
vertical-align: baseline; |
||||
padding: 1em 1em 0 0; |
||||
} |
||||
table.fields td.desc { |
||||
vertical-align: baseline; |
||||
padding: 1ex 0 0 1em; |
||||
} |
||||
table.fields td.desc p:first-child { |
||||
margin: 0; |
||||
} |
||||
|
||||
table.fields td.desc p { |
||||
margin: 1.5ex 0 0 0; |
||||
} |
||||
|
||||
/* START EXPERIMENTAL CODE */ |
||||
table.long { |
||||
display: block; |
||||
width: 93%; |
||||
} |
||||
table.long thead, |
||||
table.long tbody, |
||||
table.long th, |
||||
table.long td, |
||||
table.long tr { |
||||
display: block; |
||||
} |
||||
/* Hide table headers (but not display: none; |
||||
, for accessibility) */ |
||||
table.long thead tr { |
||||
position: absolute; |
||||
top: -9999px; |
||||
left: -9999px; |
||||
} |
||||
table.long tr { |
||||
border: 0; |
||||
} |
||||
table.long { |
||||
margin: 1.5ex 3% 1.5ex 3%; |
||||
} |
||||
table.long td.val { |
||||
text-align: left; |
||||
} |
||||
table.long td { |
||||
/* Behave like a "row" */ |
||||
border: none; |
||||
border-bottom: 0; |
||||
position: relative; |
||||
padding-left: 50%; |
||||
} |
||||
table.long td:before { |
||||
/* Now like a table header */ |
||||
position: absolute; |
||||
/* Top/left values mimic padding */ |
||||
top: 6px; |
||||
left: 6px; |
||||
width: 45%; |
||||
padding-right: 10px; |
||||
white-space: nowrap; |
||||
} |
||||
/* END EXPERIMENTAL CODE */ |
||||
|
||||
/* Index table */ |
||||
table.index { |
||||
width: 100%; |
||||
border-collapse: collapse; |
||||
border: 0; |
||||
border-spacing: 1em 0.3ex; |
||||
} |
||||
table.index tr { |
||||
padding: 0; |
||||
} |
||||
table.index td { |
||||
padding: 0; |
||||
} |
||||
table.index-toc-link { |
||||
width: 100%; |
||||
border: 0; |
||||
border-spacing: 0; |
||||
margin: 1ex 0 1ex 0; |
||||
} |
||||
table.index-toc-link td.left { |
||||
padding: 0 0.5em 0 0.5em; |
||||
font-size: 83%; |
||||
text-align: left; |
||||
} |
||||
table.index-toc-link td.middle { |
||||
padding: 0 0.5em 0 0.5em; |
||||
font-size: 83%; |
||||
text-align: center; |
||||
} |
||||
table.index-toc-link td.right { |
||||
padding: 0 0.5em 0 0.5em; |
||||
font-size: 83%; |
||||
text-align: right; |
||||
} |
||||
/* toc table */ |
||||
table.toc { |
||||
width: 95%; |
||||
margin: 1.5ex 0 1.5ex 5%; |
||||
} |
||||
table.toc td.link { |
||||
width: 30%; |
||||
text-align: right; |
||||
vertical-align: baseline; |
||||
padding: 1ex 1em 1ex 0; |
||||
} |
||||
table.toc td.desc { |
||||
vertical-align: baseline; |
||||
padding: 1ex 0 1ex 1em; |
||||
text-align: left; |
||||
} |
||||
table.toc td.desc p:first-child { |
||||
margin: 0; |
||||
text-align: left; |
||||
} |
||||
table.toc td.desc p { |
||||
margin: 1.5ex 0 0 0; |
||||
text-align: left; |
||||
} |
||||
div.timestamp { |
||||
font-size: small; |
||||
} |
||||
/* Max width before this PARTICULAR table gets nasty This query will take effect for any screen smaller than 760px and also iPads specifically. */ |
||||
@media only screen and (max-width: 760px), (min-device-width: 768px) and (max-device-width: 1024px) { |
||||
/* Force table to not be like tables anymore */ |
||||
table, thead, tbody, th, td, tr { |
||||
display: block; |
||||
} |
||||
/* Hide table headers (but not display: none; |
||||
, for accessibility) */ |
||||
thead tr { |
||||
position: absolute; |
||||
top: -9999px; |
||||
left: -9999px; |
||||
} |
||||
tr { |
||||
border: 0; |
||||
} |
||||
table.fields { |
||||
width: 93%; |
||||
margin: 1.5ex 3% 1.5ex 3%; |
||||
} |
||||
table.fields td.val { |
||||
text-align: left; |
||||
} |
||||
td { |
||||
/* Behave like a "row" */ |
||||
border: none; |
||||
border-bottom: 0; |
||||
position: relative; |
||||
padding-left: 50%; |
||||
} |
||||
td:before { |
||||
/* Now like a table header */ |
||||
position: absolute; |
||||
/* Top/left values mimic padding */ |
||||
top: 6px; |
||||
left: 6px; |
||||
width: 45%; |
||||
padding-right: 10px; |
||||
white-space: nowrap; |
||||
} |
||||
} |
Loading…
Reference in new issue