From 13cde7b2ed9a8f61a29d9181ba273dd8825f25c3 Mon Sep 17 00:00:00 2001 From: "Bryan A. Jones" Date: Thu, 30 Jul 2020 12:10:35 -0500 Subject: [PATCH] Add: CodeChat/Runestone docs build. --- .github/FUNDING.yml | 3 + .gitignore | 3 + .readthedocs.yml | 18 + .travis.yml | 3 + ACKNOWLEDGEMENTS.rst | 22 +- MANIFEST.in | 3 + codechat_config.json | 23 ++ conf.py | 351 ++++++++++++++++++ index.rst | 56 +++ makeRelease.sh | 3 + pavement.py | 70 ++++ public/index.html | 5 + requirements-dev.in | 3 + requirements.in | 3 + runestone/__main__.py | 3 + runestone/accessibility/__init__.py | 3 + runestone/accessibility/accessibility.py | 9 +- runestone/accessibility/css/accessibility.css | 8 +- .../css/accessibilitydarkest.css | 8 +- .../accessibility/css/accessibilitylight.css | 8 +- runestone/accessibility/toctree.rst | 9 + runestone/activecode/LabTestHelper.java | 21 +- runestone/activecode/__init__.py | 3 + runestone/activecode/activecode.py | 3 + runestone/activecode/textfield.py | 3 + runestone/activecode/toctree.rst | 13 + runestone/animation/__init__.py | 3 + runestone/animation/animation.py | 3 + runestone/animation/toctree.rst | 10 + runestone/assess/toctree.rst | 11 + runestone/assignment/toctree.rst | 11 + runestone/blockly/toctree.rst | 11 + runestone/chapterdb/toctree.rst | 11 + runestone/clickableArea/toctree.rst | 11 + runestone/codelens/toctree.rst | 11 + runestone/common/toctree.rst | 11 + runestone/datafile/toctree.rst | 11 + runestone/disqus/toctree.rst | 11 + runestone/dragndrop/toctree.rst | 11 + runestone/fitb/toctree.rst | 11 + runestone/lp/__init__.py | 3 + runestone/lp/css/html4css1.css | 7 +- runestone/lp/inlinesyntaxhighlight.py | 6 +- runestone/lp/lp.py | 9 +- runestone/lp/lp_common_lib.py | 11 +- runestone/lp/toctree.rst | 13 + runestone/matrixeq/toctree.rst | 11 + runestone/mchoice/toctree.rst | 11 + runestone/meta/toctree.rst | 11 + runestone/parsons/toctree.rst | 11 + runestone/poll/toctree.rst | 11 + runestone/pretext/toctree.rst | 11 + runestone/question/toctree.rst | 11 + runestone/reveal/toctree.rst | 11 + runestone/server/toctree.rst | 11 + runestone/shortanswer/toctree.rst | 11 + runestone/showeval/toctree.rst | 11 + runestone/spreadsheet/toctree.rst | 11 + runestone/tabbedStuff/toctree.rst | 11 + runestone/timed/toctree.rst | 11 + runestone/unittest_base.py | 6 +- runestone/usageAssignment/toctree.rst | 11 + runestone/utility/toctree.rst | 11 + runestone/video/toctree.rst | 11 + runestone/webgldemo/toctree.rst | 11 + runestone/webwork/toctree.rst | 11 + setup.cfg | 3 + setup.py | 3 + sphinx_conf.py | 0 webpack.config.js | 3 + 70 files changed, 1022 insertions(+), 45 deletions(-) create mode 100644 .readthedocs.yml create mode 100644 codechat_config.json create mode 100644 conf.py create mode 100644 index.rst create mode 100644 pavement.py create mode 100644 runestone/accessibility/toctree.rst create mode 100644 runestone/activecode/toctree.rst create mode 100644 runestone/animation/toctree.rst create mode 100644 runestone/assess/toctree.rst create mode 100644 runestone/assignment/toctree.rst create mode 100644 runestone/blockly/toctree.rst create mode 100644 runestone/chapterdb/toctree.rst create mode 100644 runestone/clickableArea/toctree.rst create mode 100644 runestone/codelens/toctree.rst create mode 100644 runestone/common/toctree.rst create mode 100644 runestone/datafile/toctree.rst create mode 100644 runestone/disqus/toctree.rst create mode 100644 runestone/dragndrop/toctree.rst create mode 100644 runestone/fitb/toctree.rst create mode 100644 runestone/lp/toctree.rst create mode 100644 runestone/matrixeq/toctree.rst create mode 100644 runestone/mchoice/toctree.rst create mode 100644 runestone/meta/toctree.rst create mode 100644 runestone/parsons/toctree.rst create mode 100644 runestone/poll/toctree.rst create mode 100644 runestone/pretext/toctree.rst create mode 100644 runestone/question/toctree.rst create mode 100644 runestone/reveal/toctree.rst create mode 100644 runestone/server/toctree.rst create mode 100644 runestone/shortanswer/toctree.rst create mode 100644 runestone/showeval/toctree.rst create mode 100644 runestone/spreadsheet/toctree.rst create mode 100644 runestone/tabbedStuff/toctree.rst create mode 100644 runestone/timed/toctree.rst create mode 100644 runestone/usageAssignment/toctree.rst create mode 100644 runestone/utility/toctree.rst create mode 100644 runestone/video/toctree.rst create mode 100644 runestone/webgldemo/toctree.rst create mode 100644 runestone/webwork/toctree.rst create mode 100644 sphinx_conf.py diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index d5b5e199c..d06ade0bb 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* # These are supported funding model platforms #github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] diff --git a/.gitignore b/.gitignore index c8a73e264..842442b88 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* *.py[cod] *.log .venv diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 000000000..d6963896a --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,18 @@ +# ******************************************** +# |docname| - Read the Docs configuration file +# ******************************************** +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# TODO: need some way to invoke a runestone build. Idea: a mock conf.py that runs the build in a subprocess. +sphinx: + configuration: conf.py + +# Optionally set the version of Python and requirements required to build your docs +python: + version: 3.8 + install: + - method: pip + path: . \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index f2ea0480a..0dd8b2026 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* dist: xenial language: python python: diff --git a/ACKNOWLEDGEMENTS.rst b/ACKNOWLEDGEMENTS.rst index 21b0bd174..6382fc8db 100644 --- a/ACKNOWLEDGEMENTS.rst +++ b/ACKNOWLEDGEMENTS.rst @@ -1,16 +1,19 @@ -Runestone Interactive would never have come to life without many other open source projects and people. This is an attempt to ackowledge those projects and people. +**************** +Acknowledgements +**************** +Runestone Interactive would never have come to life without many other open source projects and people. This is an attempt to acknowledge those projects and people. * CodeLens -- Philip Guo and the Python Tutor Project -- pythontutor.come -* ActiveCode -- The Skulpt project -- skulpt.org -* Parson's Problems -- Ville Karavirta and the team at Georgia Tech who has added tons -* showEval -- Al Sweigart +* ActiveCode -- The Skulpt project -- skulpt.org +* Parson's Problems -- Ville Karavirta and the team at Georgia Tech who has added tons +* showEval -- Al Sweigart * Short Answer -- Cory Bart at Virginia Tech * the Blockly project @ Google * The Sphinx and Docutils projects Luther College --------------- +============== * Brad Miller * David Ranum * Roman Yasinovskyy @@ -25,8 +28,7 @@ Luther College * Tyler Conzett Georgia Tech ------------- - +============ * Barbara Ericson * Mark Guzdial * Jeff Rick @@ -35,13 +37,11 @@ Georgia Tech * Matt Moldovan University of Michigan ----------------------- - +====================== * Paul Resnick * Jackie Cohen * Charles Severence Mississippi State University ----------------------------- - +============================ * Bryan Jones diff --git a/MANIFEST.in b/MANIFEST.in index c4f930871..a4b2820a0 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* graft runestone include requirements.txt include README.md diff --git a/codechat_config.json b/codechat_config.json new file mode 100644 index 000000000..7fd28a552 --- /dev/null +++ b/codechat_config.json @@ -0,0 +1,23 @@ +# ************************************************ +# |docname| - Configuration for a CodeChat project +# ************************************************ +# This file defines the configuration for a CodeChat project. In addition to allowing standard JSON objects, it also allows Python-style comments and any valid Python literal. +# +# The file must contain a single dict, with the following keys: +{ + # ``source_path``: optional; defaults to ``.``. A path to the root of the source tree. Relative paths are rooted in the directory containing this file. + "source_path": ".", + + # ``output_path``: required. A path to the root of the HTML output produced by this renderer. Relative paths are rooted in the directory containing this file. + "output_path": "build/RunestoneComponents", + + # ``args``: required. A list of arguments to invoke the renderer. Each element of the list must be a string. Each string may optionally contain the following replacement values: + # + # - ``{project_path}``: an absolute path to the directory containing this file. + # - ``{source_path}``: the ``source_path`` above, but as an absolute path. + # - ``{output_path}``: the ``output_path`` above, but as an absolute path. + "args": ["runestone", "build"], + + # ``html_ext``: optional; defaults to ``.html``. The extension used by this renderer when generating HTML files. + #"html_ext": ".html", +} \ No newline at end of file diff --git a/conf.py b/conf.py new file mode 100644 index 000000000..5206aa613 --- /dev/null +++ b/conf.py @@ -0,0 +1,351 @@ +# ********* +# |docname| +# ********* +# +# Problem Solving with Algorithms and Data Structures documentation build configuration file, created by +# sphinx-quickstart on Thu Oct 27 08:17:45 2011. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('../modules')) + +from runestone import runestone_static_dirs, runestone_extensions, setup +import pkg_resources + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +#needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.mathjax', 'recommonmark', "sphinx.ext.intersphinx"] + runestone_extensions() + +#,'runestone.video','runestone.reveal','runestone.poll','runestone.tabbedStuff','runestone.disqus','runestone.codelens','runestone.activecode', 'runestone.assess', 'runestone.animation','runestone.meta', 'runestone.parsons', 'runestone.blockly', 'runestone.livecode','runestone.accessibility'] + +# This sets up your project to use the defaults. If you want to create a custom set of templates +# for your own project you can over ride them by creating your own _templates folder +templates_path = [pkg_resources.resource_filename('runestone', 'common/project_template/_templates')] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = 'Runestone Interactive Overview' +copyright = '2017 bjones' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.0.1' +# The full version, including alpha/beta/rc tags. +release = '0.0' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = [ + # Misc files. + ".pytest_cache", + # Ignore Runestone/Sphinx build output. + "build", + # Ignore copied files from test directories. + "**/test/build", + "**/test/conf.py", + "**/test/pavement.py", + "**/test_error/build", + "**/test_error/conf.py", + "**/test_error/pavement.py", + "**/test_working/build", + "**/test_working/conf.py", + "**/test_working/pavement.py", + # Ignore the NPM library and webpack build output. + "node_modules", + "runestone/dist", + # Ignore external JS libraries/CSS sheets. + "**/js/*_compressed.js", + "**/js/*.bundle.js", + "**/js/*.min.js", + "**/js/jquery*.js", + "**/js/md5.js", + "**/js/sharedb.js", + "**/js/skulpt*.js", + "**/jqchart", + "**/js/msg", + "**/js/processing.js", + "**/js/prettify.js", + "**/css/*.min.css", + "runestone/common/project_template/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-*", +] + +# The reST default role (used for this markup: `text`) to use for all documents. +default_role = "any" + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + +# `keep_warnings `_: +# If true, keep warnings as “system message” paragraphs in the built documents. +# Regardless of this setting, warnings are always written to the standard error +# stream when sphinx-build is run. +keep_warnings = True + +# `rst_prolog `_: +# A string of reStructuredText that will be included at the beginning of every +# source file that is read. +rst_prolog = ( +# For fill-in-the-blank questions, provide a convenient means to indicate a blank. +""" + +.. |blank| replace:: :blank:`x` +""" + +# For literate programming files, provide a convenient way to refer to a source file's name. See `runestone.lp.lp._docname_role`. +""".. |docname| replace:: :docname:`name` +""" +) + +# Select whether to use server-side grading where possible. Server-side grading +# requires **all** the following: +# +# - The use of Runestone services (``eBookConfig.useRunestoneServices === true``) +# - Logging enabled (``eBookConfig.logLevel > 0``) +# +# The first two conditions cause the ``RunestoneBase.logBookEvent`` in ``runestonebase.js`` to post a student response to the server. The last conditions ensures that ``hsblog`` in ``ajax.py`` on the server will return a response containing grading information. +runestone_server_side_grading = False + +# Extensions +# ========== +# CodeChat +# -------- +# **CodeChat note:** A dict of {glob_, lexer_alias}, which uses lexer_alias +# (e.g. a lexer's `short name `_) to analyze +# any file wihch matches the given `glob +# `_. +CodeChat_lexer_for_glob = { + # Otherwise, Pygments picks the wrong lexer for CSS and other common files. + '*.css': 'CSS', + '*.js': 'JavaScript', + "*.html": "HTML", + # Perl use # for comments, so pretend these files are Perl. + "*.in": "Perl", + ".gitignore": "Perl", + "*.cfg": "INI", + # This is actually a Python file. + "codechat_config.json": "Python", +} +# +# **CodeChat note::** This is a list of exclude_patterns_ which applies only to +# source documents; exclude_patterns_ will exclude the given files from all of +# Sphinx (for example, files here won't be included even if they're mentioned in +# html_static_path_. +CodeChat_excludes = [] +# +# Inline syntax highlight +# ----------------------- +# `inline_highlight_respect_highlight `_: +# Use the language specified by the ``highlight`` directive to syntax highlight ``code`` role contents. +inline_highlight_respect_highlight = True +inline_highlight_literals = False + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'sphinx_bootstrap' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {'nosidebar': 'true'} +html_theme_options = { + # Navigation bar title. (Default: ``project`` value) + 'navbar_title': "Runestone Components", + + # Tab name for entire site. (Default: "Site") + 'navbar_site_name': "Chapters", + + # Global TOC depth for "site" navbar tab. (Default: 1) + # Switching to -1 shows all levels. + 'globaltoc_depth': 1, + + # Include hidden TOCs in Site navbar? + # + # Note: If this is "false", you cannot have mixed ``:hidden:`` and + # non-hidden ``toctree`` directives in the same page, or else the build + # will break. + # + # Values: "true" (default) or "false" + 'globaltoc_includehidden': "true", + + # HTML navbar class (Default: "navbar") to attach to
element. + # For black navbar, do "navbar navbar-inverse" + 'navbar_class': "navbar", + + # Fix navigation bar to top of page? + # Values: "true" (default) or "false" + 'navbar_fixed_top': "true", + + # Location of link to source. + # Options are "nav" (default), "footer" or anything else to exclude. + 'source_link_position': "nav", + + # Bootswatch (http://bootswatch.com/) theme. + # + # Options are nothing with "" (default) or the name of a valid theme + # such as "amelia" or "cosmo". + # + # Note that this is served off CDN, so won't be available offline. + #'bootswatch_theme': "slate", +} + + +# This is set up to use the default runestone themes, you can override them by +# creating your own folder and modifying this path. +# Add any paths that contain custom themes here, relative to this directory. +html_theme_path = [pkg_resources.resource_filename('runestone', 'common/project_template/_templates/plugin_layouts')] + + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +html_title = 'Runestone Interactive Overview' + +# A shorter title for the navigation bar. Default is the same as html_title. +html_short_title ='Runestone Interactive Overview' + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. + +# logo is included in layout file +#html_logo = "../source/_static/logo_small.png" + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". + +html_static_path = runestone_static_dirs() + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +html_show_sourcelink = False + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'PythonCoursewareProjectdoc' + +# 'accessibility_style' config value is defined in the 'accessibility' extension. +# By this config value you can select what accessibility stylesheet +# you want to add ('normal', 'light', 'darkest' or 'none') +#accessibility_style = 'normal' + +# Config values for specific Runestone components +# +#activecode_div_class = 'runestone explainer ac_section alert alert-warning' +#activecode_hide_load_history = False +#mchoice_div_class = 'runestone alert alert-warning' +#clickable_div_class = 'runestone alert alert-warning' +#codelens_div_class = 'alert alert-warning cd_section' +#dragndrop_div_class = 'runestone' +#fitb_div_class = 'runestone' +#parsons_div_class = 'runestone' +#poll_div_class = 'alert alert-warning' +#shortanswer_div_class = 'journal alert alert-warning' +#shortanswer_optional_div_class = 'journal alert alert-success' +#showeval_div_class = 'runestone explainer alert alert-warning' +#tabbed_div_class = 'alert alert-warning' + +# Intersphinx +# =========== +# `intersphinx_mapping `_: +# This config value contains the locations and names of other projects that should be linked to in this documentation. +intersphinx_mapping = { + "RunestoneServer": ( + "https://runestoneserver.readthedocs.io/en/latest/", + None, + # An optional local file location -- useful when updating both Sphinx builds before the updates are pushed to the server. + ##"F:/Runestone/web2py/applications/runestone/_build/objects.inv", + ) +} diff --git a/index.rst b/index.rst new file mode 100644 index 000000000..e34caa4ba --- /dev/null +++ b/index.rst @@ -0,0 +1,56 @@ +******************** +Runestone Components +******************** +This site documents the working of the Runestone Components. See the `Runestone Interactive Overview `_ or the `Runestone instructor's guide `_. + +Demo linking to the Runestone Server docs: `assignments/grades_report endpoint`. + + +Getting started +=============== +.. toctree:: + :maxdepth: 2 + + README + CONTRIBUTING + I18N + + +Components +========== +.. toctree:: + :maxdepth: 1 + :glob: + + runestone/*/toctree + runestone/__init__.py + runestone/__main__.py + runestone/unittest_base.py + + +Packaging +========= +.. toctree:: + :maxdepth: 2 + + setup.py + setup.cfg + MANIFEST.in + +Misc +==== +.. toctree:: + :maxdepth: 2 + + ACKNOWLEDGEMENTS + .github/FUNDING.yml + .gitignore + .travis.yml + .readthedocs.yml + conf.py + codechat_config.json + requirements-dev.in + requirements.in + webpack.config.js + public/index.html + makeRelease.sh diff --git a/makeRelease.sh b/makeRelease.sh index 7cb64b89b..c35645b9a 100755 --- a/makeRelease.sh +++ b/makeRelease.sh @@ -1,4 +1,7 @@ #!/bin/bash +# ********* +# |docname| +# ********* set -e diff --git a/pavement.py b/pavement.py new file mode 100644 index 000000000..7dac75bcb --- /dev/null +++ b/pavement.py @@ -0,0 +1,70 @@ +import os +import sys +import pkg_resources +from socket import gethostname + +from paver.easy import options, Bunch +import paver.setuputils + +from runestone import get_master_url +from runestone import build # NOQA: F401 -- build is called implicitly by the paver driver. +from runestone.server import get_dburl + +paver.setuputils.install_distutils_tasks() +sys.path.append(os.getcwd()) + +# The project name, for use below. +project_name = 'RunestoneComponents' + +master_url = 'http://127.0.0.1:8000' +if not master_url: + master_url = get_master_url() + +# The root directory for ``runestone serve``. +serving_dir = "./build/" + project_name +# The destination directory for ``runestone deploy``. +dest = "../../static" + +options( + sphinx=Bunch(docroot=".",), + + build=Bunch( + builddir=serving_dir, + sourcedir=".", + outdir=serving_dir, + confdir=".", + template_args={ + 'login_required': 'false', + 'loglevel': 0, + 'course_title': project_name, + 'python3': 'false', + 'dburl': '', + 'default_ac_lang': 'python', + 'jobe_server': 'http://jobe2.cosc.canterbury.ac.nz', + 'proxy_uri_runs': '/jobe/index.php/restapi/runs/', + 'proxy_uri_files': '/jobe/index.php/restapi/files/', + 'downloads_enabled': 'false', + 'enable_chatcodes': 'false', + 'allow_pairs': 'false', + 'dynamic_pages': False, + 'use_services': 'false', + 'basecourse': project_name, + 'course_id': project_name, + # These are used for non-dynamic books. + 'appname': 'runestone', + 'course_url': master_url, + } + ) +) + +# if we are on runestone-deploy then use the proxy server not canterbury +if gethostname() == 'runestone-deploy': + del options.build.template_args['jobe_server'] + del options.build.template_args['proxy_uri_runs'] + del options.build.template_args['proxy_uri_files'] + +version = pkg_resources.require("runestone")[0].version +options.build.template_args['runestone_version'] = version + +# If DBURL is in the environment override dburl +options.build.template_args['dburl'] = get_dburl(outer=locals()) diff --git a/public/index.html b/public/index.html index 62a18ec2f..502f2406a 100644 --- a/public/index.html +++ b/public/index.html @@ -1,4 +1,9 @@ + diff --git a/requirements-dev.in b/requirements-dev.in index 6c3999683..5fbff74d1 100644 --- a/requirements-dev.in +++ b/requirements-dev.in @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* wheel twine pip-tools diff --git a/requirements.in b/requirements.in index b8975cb7c..2d3786116 100644 --- a/requirements.in +++ b/requirements.in @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* click Paver>=1.2.4 six>1.12 diff --git a/runestone/__main__.py b/runestone/__main__.py index 0fc15bf7c..6775348d4 100644 --- a/runestone/__main__.py +++ b/runestone/__main__.py @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* import sys import os import shutil diff --git a/runestone/accessibility/__init__.py b/runestone/accessibility/__init__.py index f36ebde3f..84c24b85d 100644 --- a/runestone/accessibility/__init__.py +++ b/runestone/accessibility/__init__.py @@ -1 +1,4 @@ +# ********* +# |docname| +# ********* from .accessibility import * diff --git a/runestone/accessibility/accessibility.py b/runestone/accessibility/accessibility.py index e3a692774..ac58f964d 100644 --- a/runestone/accessibility/accessibility.py +++ b/runestone/accessibility/accessibility.py @@ -1,6 +1,11 @@ -"""This extension adds an accessibiligy stylesheet. +""" +********* +|docname| +********* + +This extension adds an accessibiligy stylesheet. -By the 'accessibility_style' config value (in conf.py of +By the 'accessibility_style' config value (in conf.py of an interactive book project) you can select what accessibility stylesheet you want to add ('normal', 'light', 'darkest' or 'none') diff --git a/runestone/accessibility/css/accessibility.css b/runestone/accessibility/css/accessibility.css index 664a12361..2ef3ea56d 100644 --- a/runestone/accessibility/css/accessibility.css +++ b/runestone/accessibility/css/accessibility.css @@ -1,3 +1,9 @@ +/* +********* +|docname| +********* +*/ + /* Variables holding theme colors */ :root { --codebuttons: #474949; @@ -28,7 +34,7 @@ li.dropdown a.dropdown-toggle { } /* -Bootstrap button styling +Bootstrap button styling */ /* Default Button */ diff --git a/runestone/accessibility/css/accessibilitydarkest.css b/runestone/accessibility/css/accessibilitydarkest.css index 6b66ef899..358e19ef6 100644 --- a/runestone/accessibility/css/accessibilitydarkest.css +++ b/runestone/accessibility/css/accessibilitydarkest.css @@ -1,3 +1,9 @@ +/* +********* +|docname| +********* +*/ + /*Navigation Tabbing Styling*/ li.dropdown.open a.dropdown-toggle, li.dropdown.open a.dropdown-toggle:focus { border:0px !important; @@ -21,7 +27,7 @@ li.dropdown a.dropdown-toggle { } /* -Bootstrap button styling +Bootstrap button styling */ /* Default Button */ diff --git a/runestone/accessibility/css/accessibilitylight.css b/runestone/accessibility/css/accessibilitylight.css index 84a524c6f..b8f6b21b1 100644 --- a/runestone/accessibility/css/accessibilitylight.css +++ b/runestone/accessibility/css/accessibilitylight.css @@ -1,3 +1,9 @@ +/* +********* +|docname| +********* +*/ + /*Navigation Tabbing Styling*/ li.dropdown.open a.dropdown-toggle, li.dropdown.open a.dropdown-toggle:focus { border:0px !important; @@ -21,7 +27,7 @@ li.dropdown a.dropdown-toggle { } /* -Bootstrap button styling +Bootstrap button styling */ /* Default Button */ diff --git a/runestone/accessibility/toctree.rst b/runestone/accessibility/toctree.rst new file mode 100644 index 000000000..4cd8759af --- /dev/null +++ b/runestone/accessibility/toctree.rst @@ -0,0 +1,9 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + css/*.css diff --git a/runestone/activecode/LabTestHelper.java b/runestone/activecode/LabTestHelper.java index 7a356457f..d35ca7869 100644 --- a/runestone/activecode/LabTestHelper.java +++ b/runestone/activecode/LabTestHelper.java @@ -1,3 +1,6 @@ +// ********* +// |docname| +// ********* import java.io.*; import java.lang.reflect.*; @@ -11,9 +14,9 @@ * * @author Kate McDonnell * @version 2020-04-27 - * + * * This class provides helper methods to make writing test classes easier. Most of them are for simplifying output. - * + * */ public class LabTestHelper { @@ -58,18 +61,18 @@ public String getMethodOutput(String className, String methodName) throws IOExce catch (Exception e) { return "Other issue."; } - + return "Method " + methodName + " does not exist"; } - - - + + + protected String cleanString(String orig) //\\s+ { return orig.replaceAll("\\s+"," ").replaceAll("[^A-Za-z0-9 ]", "").trim(); } - + protected String cleanStringIgnoreCase(String orig) //\\s+ { return cleanString(orig.toLowerCase()); @@ -80,8 +83,8 @@ protected String failMessage(String msg) return failMessage(msg, 70); } - - + + protected String failMessage(String msg, int maxWidth) { String stars = repeat("*", maxWidth*2); diff --git a/runestone/activecode/__init__.py b/runestone/activecode/__init__.py index 57321e4b2..8183f9f93 100644 --- a/runestone/activecode/__init__.py +++ b/runestone/activecode/__init__.py @@ -1 +1,4 @@ +# ********* +# |docname| +# ********* from .activecode import * diff --git a/runestone/activecode/activecode.py b/runestone/activecode/activecode.py index db348fcf7..6bdd65c0b 100644 --- a/runestone/activecode/activecode.py +++ b/runestone/activecode/activecode.py @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* # Copyright (C) 2011 Bradley N. Miller # # This program is free software: you can redistribute it and/or modify diff --git a/runestone/activecode/textfield.py b/runestone/activecode/textfield.py index ff8e83ef4..71087692c 100644 --- a/runestone/activecode/textfield.py +++ b/runestone/activecode/textfield.py @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* # Copyright (C) 2011 Bradley N. Miller # # This program is free software: you can redistribute it and/or modify diff --git a/runestone/activecode/toctree.rst b/runestone/activecode/toctree.rst new file mode 100644 index 000000000..513699cfd --- /dev/null +++ b/runestone/activecode/toctree.rst @@ -0,0 +1,13 @@ +************************************************* +ActiveCode +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + README + *.py + js/*.js + css/*.css + *.java + test/test_*.py diff --git a/runestone/animation/__init__.py b/runestone/animation/__init__.py index 8ae5d9b40..72592138b 100644 --- a/runestone/animation/__init__.py +++ b/runestone/animation/__init__.py @@ -1 +1,4 @@ +# ********* +# |docname| +# ********* from .animation import * diff --git a/runestone/animation/animation.py b/runestone/animation/animation.py index 348e476ae..dbce0a4c9 100644 --- a/runestone/animation/animation.py +++ b/runestone/animation/animation.py @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* # Copyright (C) 2011 Bradley N. Miller # # This program is free software: you can redistribute it and/or modify diff --git a/runestone/animation/toctree.rst b/runestone/animation/toctree.rst new file mode 100644 index 000000000..e305f2ed5 --- /dev/null +++ b/runestone/animation/toctree.rst @@ -0,0 +1,10 @@ +************************************************* +Animation +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + README + *.py + js/*.js diff --git a/runestone/assess/toctree.rst b/runestone/assess/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/assess/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/assignment/toctree.rst b/runestone/assignment/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/assignment/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/blockly/toctree.rst b/runestone/blockly/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/blockly/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/chapterdb/toctree.rst b/runestone/chapterdb/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/chapterdb/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/clickableArea/toctree.rst b/runestone/clickableArea/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/clickableArea/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/codelens/toctree.rst b/runestone/codelens/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/codelens/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/common/toctree.rst b/runestone/common/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/common/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/datafile/toctree.rst b/runestone/datafile/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/datafile/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/disqus/toctree.rst b/runestone/disqus/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/disqus/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/dragndrop/toctree.rst b/runestone/dragndrop/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/dragndrop/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/fitb/toctree.rst b/runestone/fitb/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/fitb/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/lp/__init__.py b/runestone/lp/__init__.py index b133e3175..c45b24fbe 100644 --- a/runestone/lp/__init__.py +++ b/runestone/lp/__init__.py @@ -1,3 +1,6 @@ +# ******************************** +# |docname| - LP module definition +# ******************************** from runestone.lp import inlinesyntaxhighlight, lp diff --git a/runestone/lp/css/html4css1.css b/runestone/lp/css/html4css1.css index 041c495ba..e4284de28 100644 --- a/runestone/lp/css/html4css1.css +++ b/runestone/lp/css/html4css1.css @@ -1 +1,6 @@ -/* This file is blank for Runestone -- other CodeChat instances supply something useful here. */ \ No newline at end of file +/* +**************************** +|docname| - Dummy CSS for LP +**************************** +This file is blank for Runestone -- other CodeChat instances supply something useful here. +*/ \ No newline at end of file diff --git a/runestone/lp/inlinesyntaxhighlight.py b/runestone/lp/inlinesyntaxhighlight.py index 839989797..0641ba29d 100644 --- a/runestone/lp/inlinesyntaxhighlight.py +++ b/runestone/lp/inlinesyntaxhighlight.py @@ -17,9 +17,9 @@ # # .. highlight:: python # -# ********************************************************************************* -# inlinesyntaxhighlight.py - Syntax highlighting for inline literal and code blocks -# ********************************************************************************* +# ****************************************************************** +# |docname| - Syntax highlighting for inline literal and code blocks +# ****************************************************************** # This is a heavily modified version of https://bitbucket.org/klorenz/sphinxcontrib-inlinesyntaxhighlight. from docutils import nodes import re diff --git a/runestone/lp/lp.py b/runestone/lp/lp.py index b92751a28..3f00c0b66 100644 --- a/runestone/lp/lp.py +++ b/runestone/lp/lp.py @@ -1,11 +1,8 @@ # .. Copyright (C) 2019 Bryan A. Jones. # -# -# .. highlight:: python -# -# ************************************************************************** -# lp.py - A Runestone extension for authoring literate programming questions -# ************************************************************************** +# ****************************************************************************** +# |docname| - A Runestone extension for authoring literate programming questions +# ****************************************************************************** # # Imports # ======= diff --git a/runestone/lp/lp_common_lib.py b/runestone/lp/lp_common_lib.py index 9c3d7b701..455daaba3 100644 --- a/runestone/lp/lp_common_lib.py +++ b/runestone/lp/lp_common_lib.py @@ -1,12 +1,9 @@ # .. Copyright (C) 2019 Bryan A. Jones. # -# -# .. highlight:: python -# -# ******************************************************************************** -# lp_common_lib.py - Definitions of shared data in the literate programming system -# ******************************************************************************** -# This file contains a definition and supporting classes for a data structure used to export data from Sphinx to the Flask database for the books. +# ************************************************************************* +# |docname| - Definitions of shared data in the literate programming system +# ************************************************************************* +# # This file contains a definition and supporting classes for a data structure used to export data from Sphinx to the Flask database for the books. # # Imports # ======= diff --git a/runestone/lp/toctree.rst b/runestone/lp/toctree.rst new file mode 100644 index 000000000..d7369056d --- /dev/null +++ b/runestone/lp/toctree.rst @@ -0,0 +1,13 @@ +************************************************* +Literate programming (LP) +************************************************* +The following files define the Literate Programming directive for Runestone, as well as adding some unrelated functionality. + +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/matrixeq/toctree.rst b/runestone/matrixeq/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/matrixeq/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/mchoice/toctree.rst b/runestone/mchoice/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/mchoice/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/meta/toctree.rst b/runestone/meta/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/meta/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/parsons/toctree.rst b/runestone/parsons/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/parsons/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/poll/toctree.rst b/runestone/poll/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/poll/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/pretext/toctree.rst b/runestone/pretext/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/pretext/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/question/toctree.rst b/runestone/question/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/question/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/reveal/toctree.rst b/runestone/reveal/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/reveal/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/server/toctree.rst b/runestone/server/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/server/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/shortanswer/toctree.rst b/runestone/shortanswer/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/shortanswer/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/showeval/toctree.rst b/runestone/showeval/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/showeval/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/spreadsheet/toctree.rst b/runestone/spreadsheet/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/spreadsheet/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/tabbedStuff/toctree.rst b/runestone/tabbedStuff/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/tabbedStuff/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/timed/toctree.rst b/runestone/timed/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/timed/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/unittest_base.py b/runestone/unittest_base.py index e31729b7f..d9089d322 100644 --- a/runestone/unittest_base.py +++ b/runestone/unittest_base.py @@ -1,6 +1,6 @@ -# ************************************************************************* -# ``unittest_base.py`` - Base classes for RunestoneComponents test fixtures -# ************************************************************************* +# ************************************************************** +# |docname| - Base classes for RunestoneComponents test fixtures +# ************************************************************** # # Imports # ======= diff --git a/runestone/usageAssignment/toctree.rst b/runestone/usageAssignment/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/usageAssignment/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/utility/toctree.rst b/runestone/utility/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/utility/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/video/toctree.rst b/runestone/video/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/video/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/webgldemo/toctree.rst b/runestone/webgldemo/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/webgldemo/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/runestone/webwork/toctree.rst b/runestone/webwork/toctree.rst new file mode 100644 index 000000000..0bac15fe7 --- /dev/null +++ b/runestone/webwork/toctree.rst @@ -0,0 +1,11 @@ +************************************************* +Accessibility +************************************************* +.. toctree:: + :maxdepth: 1 + :glob: + + *.py + js/*.js + css/*.css + test/test_*.py diff --git a/setup.cfg b/setup.cfg index b2445a8c2..7201048da 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,3 +1,6 @@ +; ********* +; |docname| +; ********* [metadata] description-file = README.md diff --git a/setup.py b/setup.py index c4fd7f572..e0cd4dea0 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,6 @@ +# ********* +# |docname| +# ********* from setuptools import setup, find_packages from setuptools.command.install import install from setuptools.command.develop import develop diff --git a/sphinx_conf.py b/sphinx_conf.py new file mode 100644 index 000000000..e69de29bb diff --git a/webpack.config.js b/webpack.config.js index 17d85a386..897c309d1 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,3 +1,6 @@ +// ********* +// |docname| +// ********* const { CleanWebpackPlugin } = require("clean-webpack-plugin"); const CopyPlugin = require("copy-webpack-plugin"); const HtmlWebpackPlugin = require("html-webpack-plugin");