Skip to content

Commit

Permalink
doc: reorg part 2 - integrate website repo
Browse files Browse the repository at this point in the history
Merge remote-tracking branch 'website/master' into website
  • Loading branch information
cgay committed May 9, 2024
2 parents f055361 + 7cd29e6 commit 96921f5
Show file tree
Hide file tree
Showing 154 changed files with 12,453 additions and 0 deletions.
3 changes: 3 additions & 0 deletions documentation/website/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
build
\#*
*~
Empty file.
48 changes: 48 additions & 0 deletions documentation/website/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Makefile for Sphinx documentation
#

# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
BUILDDIR = build

# Internal variables.
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(SPHINXOPTS) source
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(SPHINXOPTS) source

.PHONY: help clean html gettext changes linkcheck

all: html

help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " linkcheck to check all external links for integrity"

clean:
-rm -rf $(BUILDDIR)/*

html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."

gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."

changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."

linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."

82 changes: 82 additions & 0 deletions documentation/website/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
This is the Open Dylan website.

It is built using `Sphinx <https://www.sphinx-doc.org/>`_. All content is
written using ReStructured Text with Sphinx extensions.

Installation
============

Some system dependencies need to be satisfied first. On a Debian-derivative
this should work::

sudo apt install git graphviz make python3

Install a Python3 virtual environment and use ``pip`` rather than the ``apt``
Python packages, which are sometimes very out-of-date. ::

python3 -m venv /opt/python3-venv
export PATH=/opt/python3-venv/bin:${PATH}
pip install Sphinx furo

The next step is fetching the repository and its dependencies::

git clone https://github.com/dylan-lang/website.git
cd website
deft update # Install Dylan package dependencies

Building the site
=================

Simply run the :file:`update.sh` script, specifying where you want the HTML
files to be generated::

update.sh /tmp/opendylan.org

The first time you run :file:`update.sh`, it will build the `gendoc
<https://github.com/dylan-lang/gendoc>`_ executable, which takes a bit longer.

.. note:: Currently the downloads directory is still maintained by hand. When
building the live site the first time, copy the files from the old
location.

Testing
=======

The generated site will be in the output directory you specified. Run a local
server using that directory as a static site. For example::

python3 -m http.server --directory /tmp/opendylan.org

For bonus points, you can eat our own dogfood and run the Dylan HTTP server
instead::

git clone --recursive https://github.com/dylan-lang/http
cd http
make install
http-server --directory /tmp/opendylan.org

Link Validation
---------------

Sphinx also makes it easy to check that all of the links to external sites
are valid. You can run the link checker by::

make linkcheck

Site Maintenance
================

New Binary Release of Open Dylan
--------------------------------

#. Update the appropriate info on the download page.


Updating Documentation
----------------------

The `update-opendylan.org.sh` script is run by cron to update the
documentation in various repositories by essentially doing a git pull
and make html.

*TODO:* more info here.
16 changes: 16 additions & 0 deletions documentation/website/dylan-package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "website",
"version": "0.1.0",
"description": "The opendylan.org website and tools to build it.",
"contact": "[email protected]",
"keywords": ["documentation"],
"dependencies": [],
"dev-dependencies": [
"dylan-reference-manual",
"dylan-programming-book",
"gendoc",
"opendylan",
"sphinx-extensions"
],
"url": "https://github.com/dylan-lang/website"
}
63 changes: 63 additions & 0 deletions documentation/website/make.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
@ECHO OFF

REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set BUILDDIR=build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
set I18NSPHINXOPTS=%SPHINXOPTS% source

if "%1" == "" goto help

if "%1" == "help" (
:help
echo.Please use `make ^<target^>` where ^<target^> is one of
echo. html to make standalone HTML files
echo. gettext to make PO message catalogs
echo. changes to make an overview over all changed/added/deprecated items
echo. linkcheck to check all external links for integrity
goto end
)

if "%1" == "clean" (
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
del /q /s %BUILDDIR%\*
goto end
)

if "%1" == "html" (
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
goto end
)

if "%1" == "gettext" (
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
goto end
)

if "%1" == "changes" (
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
if errorlevel 1 exit /b 1
echo.
echo.The overview file is in %BUILDDIR%/changes.
goto end
)

if "%1" == "linkcheck" (
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
if errorlevel 1 exit /b 1
echo.
echo.Link check complete; look for any errors in the above output ^
or in %BUILDDIR%/linkcheck/output.txt.
goto end
)

:end
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@techreport{Bachrach:1999,
author = {Bachrach, Jonathan and Playford, Keith},
title = {D-Expressions: Lisp Power, Dylan Style},
year = {1999},
source = {http://people.csail.mit.edu/jrb/Projects/dexprs.pdf},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@techreport{Bachrach:2000,
author = {Bachrach, Jonathan and Burke, Glemm},
title = {Partial Dispatch: Optimizing Dynamically-Dispatched Multimethod Calls with Compile-Time Types and Runtime Feedback},
year = {2000},
source = {http://people.csail.mit.edu/jrb/Projects/pd.pdf},
}
34 changes: 34 additions & 0 deletions documentation/website/source/_static/documentation/barrett1996.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
@article{Barrett:1996:MSL:236338.236343,
author = {Barrett, Kim and Cassels, Bob and Haahr, Paul and Moon, David A. and Playford, Keith and Withington, P. Tucker},
title = {A monotonic superclass linearization for Dylan},
journal = {SIGPLAN Not.},
volume = {31},
issue = {10},
month = {October},
year = {1996},
issn = {0362-1340},
pages = {69--82},
numpages = {14},
url = {http://doi.acm.org/10.1145/236338.236343},
doi = {http://doi.acm.org/10.1145/236338.236343},
acmid = {236343},
publisher = {ACM},
address = {New York, NY, USA},
}

@inproceedings{Barrett:1996:MSL:236337.236343,
author = {Barrett, Kim and Cassels, Bob and Haahr, Paul and Moon, David A. and Playford, Keith and Withington, P. Tucker},
title = {A monotonic superclass linearization for Dylan},
booktitle = {Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications},
series = {OOPSLA '96},
year = {1996},
isbn = {0-89791-788-X},
location = {San Jose, California, United States},
pages = {69--82},
numpages = {14},
url = {http://doi.acm.org/10.1145/236337.236343},
doi = {http://doi.acm.org/10.1145/236337.236343},
acmid = {236343},
publisher = {ACM},
address = {New York, NY, USA},
}
17 changes: 17 additions & 0 deletions documentation/website/source/_static/documentation/dumas1995.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@article{Dumas:1995:DWP:203241.203253,
author = {Dumas, Joseph and Parsons, Paige},
title = {Discovering the way programmers think about new programming environments},
journal = {Commun. ACM},
volume = {38},
issue = {6},
month = {June},
year = {1995},
issn = {0001-0782},
pages = {45--56},
numpages = {12},
url = {http://doi.acm.org/10.1145/203241.203253},
doi = {http://doi.acm.org/10.1145/203241.203253},
acmid = {203253},
publisher = {ACM},
address = {New York, NY, USA},
}
17 changes: 17 additions & 0 deletions documentation/website/source/_static/documentation/gray1998.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@article{Gray:1998:MLM:274946.274957,
author = {Gray, David N. and Hotchkiss, John and LaForge, Seth and Shalit, Andrew and Weinberg, Toby},
title = {Modern languages and Microsoft's component object model},
journal = {Commun. ACM},
volume = {41},
issue = {5},
month = {May},
year = {1998},
issn = {0001-0782},
pages = {55--65},
numpages = {11},
url = {http://doi.acm.org/10.1145/274946.274957},
doi = {http://doi.acm.org/10.1145/274946.274957},
acmid = {274957},
publisher = {ACM},
address = {New York, NY, USA},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@misc{housel_peter_s_2020_3742567,
author = {Housel, Peter S.},
title = {LLVM Code Generation for Open Dylan},
month = apr,
year = 2020,
publisher = {Zenodo},
doi = {10.5281/zenodo.3742567},
url = {https://doi.org/10.5281/zenodo.3742567}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@techreport{Kidd:2001:ECG:867862,
author = {Kidd, Eric},
title = {Efficient Compression of Generic Function Dispatch Tables},
year = {2001},
source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Adartmouthcs%3Ancstrl.dartmouthcs%2F%2FTR2001-404},
publisher = {Dartmouth College},
address = {Hanover, NH, USA},
}
17 changes: 17 additions & 0 deletions documentation/website/source/_static/documentation/mehnert2007.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@inproceedings{Mehnert:2007:DLM:1622123.1622148,
author = {Mehnert, Hannes and Bogk, Andreas},
title = {A domain-specific language for manipulation of binary data in Dylan},
booktitle = {Proceedings of the 2007 International Lisp Conference},
series = {ILC '07},
year = {2009},
isbn = {978-1-59593-618-9},
location = {Cambridge, United Kingdom},
pages = {22:1--22:8},
articleno = {22},
numpages = {8},
url = {http://doi.acm.org/10.1145/1622123.1622148},
doi = {http://doi.acm.org/10.1145/1622123.1622148},
acmid = {1622148},
publisher = {ACM},
address = {New York, NY, USA},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@inproceedings{Mehnert:2009,
author = {Mehnert, Hannes},
title = {Automatically generated type-safe GTK+ binding for Dylan},
booktitle = {Proceedings of the 2009 International Lisp Conference},
series = {ILC '09},
year = {2009},
location = {Cambridge, MA, USA},
}
17 changes: 17 additions & 0 deletions documentation/website/source/_static/documentation/mehnert2010.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
@inproceedings{Mehnert:2010:EDT:1869643.1869645,
author = {Mehnert, Hannes},
title = {Extending Dylan's type system for better type inference and error detection},
booktitle = {Proceedings of the 2010 international conference on Lisp},
series = {ILC '10},
year = {2010},
isbn = {978-1-4503-0470-2},
location = {Reno/Tahoe, Nevada, USA},
pages = {1--10},
numpages = {10},
url = {http://doi.acm.org/10.1145/1869643.1869645},
doi = {http://doi.acm.org/10.1145/1869643.1869645},
acmid = {1869645},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {compilers, dylan, dynamic typing, generic functions, gradual typing, lisp, multimethods, multiple dispatch, object-orientation, static typing, type inference},
}
Loading

0 comments on commit 96921f5

Please sign in to comment.