diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 00000000..03755a7a --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,23 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 +formats: all + +# Set the version of Python and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.11" + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: docs/conf.py + +# We recommend specifying your dependencies to enable reproducible builds: +# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html +#python: +# install: +# - requirements: requirements.txt diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..5b1c398c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM python:3.8-slim + +ENV DEBIAN_FRONTEND noninteractive +RUN apt-get update && apt-get upgrade -y --no-install-recommends +RUN apt-get install -y --no-install-recommends git libreoffice + +RUN git clone https://github.com/jam-py/jam-py.git /opt/jam-py +WORKDIR /opt/jam-py +RUN pip install . + +# RUN pip install jam.py==5.4.136 +# RUN mkdir -p /opt/jam-py +# COPY demo /opt/jam-py/demo + +ENV PORT 8080 +ENV LOG_LEVEL info + +# remove debian stuff +RUN apt-get autoremove -y && \ + rm -rf /var/cache/apt/archives /var/lib/apt/lists/* /tmp/* /var/tmp/* + +RUN useradd -ms /bin/bash -d /app jampy + +COPY entrypoint.sh /opt/entrypoint.sh +RUN chmod u+x /opt/entrypoint.sh +ENTRYPOINT "/opt/entrypoint.sh" diff --git a/README.rst b/README.rst index 570b4ed8..1c63c86d 100644 --- a/README.rst +++ b/README.rst @@ -21,6 +21,9 @@ Jam.py Application Builder (web framework) ================ +No longer actively developed, please use https://github.com/jam-py-v5/jam-py +================================================================================= + From an idea of a web database application to a live website in no time, for free ================================================================================= @@ -49,18 +52,20 @@ Please watch the `Jam.py framework applications `_ video to see some applications written in Jam.py. -More demos on Heroku: - -* `The RedHat Satellite 5.x Dashboard utility Demo `_ -* `The Postfix email aliases utility Demo `_ -* `The Samba Shares utility Demo `_ - -`Here `_ is a video showing how to publish a -Jam.py application from GitHub repo on Heroku +More demos on PythonAnywhere: -Demo on PythonAnywhere: +* `SAP Theme Demo `_ +* `Personal Account Ledger from MS Access template `_ +* `NorthWind Traders from MS Access template (wip) `_ +* `The ERP POC Demo with Italian and English translations `_ +* `Assets/Parts Application (wip, currently Jam V7 Demo) `_ +* `Machine Learning (wip) `_ +* `Auto Parts Sales for Brazilian Market (Portuguese) `_ +* `Resourcing and Billing Application from MS Access DB (wip) `_ +* `Job Positions tracking App from MS Access DB (wip) `_ +* `Kanban/Tasks Application `_ +* `Assets Inventory Application (wip) `_ -* `Jam.py Assets/Parts Application (wip) `_ Jam.py alternative site: @@ -96,14 +101,14 @@ the client utilizes `JavaScript `_ templates. + `LibreOffice `_ templates. * Charts. You can use free `jsCharts `_ library or any javascript charting library to create charts to represent and analyze your application data. * Allows to save audit trail/change history made by users -* Predifined css themes. +* Predefined css themes. * Develop and test locally update remotely. Jam.py has Export and Import utilities that allow developer to store all metadata (database structures, diff --git a/builder/admin.sqlite b/builder/admin.sqlite index db0628af..bf4327ac 100644 Binary files a/builder/admin.sqlite and b/builder/admin.sqlite differ diff --git a/builder/builder.sqlite b/builder/builder.sqlite index 13020fae..b427fba7 100644 Binary files a/builder/builder.sqlite and b/builder/builder.sqlite differ diff --git a/builder/js/app_builder.js b/builder/js/app_builder.js index 9a6f0c3b..2d8b0820 100644 --- a/builder/js/app_builder.js +++ b/builder/js/app_builder.js @@ -1167,7 +1167,8 @@ function Events3() { // sys_items 'client_module', 'server_module', 'divider', - 'report_params' + 'report_params', + 'privileges' ]); } } @@ -1694,7 +1695,7 @@ function Events3() { // sys_items item = field.owner if (item.is_new() && item.type_id.value != item.task.item_types.DETAIL_TYPE) { if (field.field_name == 'f_item_name' && !item.f_virtual_table.value && - item.type_id.value !== item.task.item_types.ITEMS_TYPE) { + !task._manual_update && item.type_id.value !== item.task.item_types.ITEMS_TYPE) { names = item.task.server('get_new_table_name', field.value); item.f_table_name.value = names[0]; if (item.task.db_options.NEED_GENERATOR) { @@ -5338,13 +5339,14 @@ function Events26() { // app_builder.catalogs.sys_items.sys_fields } function on_edit_form_shown(item) { - var caption = 'Field Editor'; - + let caption = 'Field Editor', + link = task.help_badge('http://jam-py.com/docs/admin/items/field_editor_dialog.html'); if (item.f_field_name.value) { - item.edit_form.find('h4.modal-title').html(caption + ' ' + item.f_field_name.value + ''); + item.edit_form.find('h4.modal-title') + .html(caption + ' ' + item.f_field_name.value + '' + link); } else { - item.edit_form.find('h4.modal-title').html(caption); + item.edit_form.find('h4.modal-title').html(caption + link); } } diff --git a/demo/static/img/.gitignore b/demo/static/img/.gitignore new file mode 100644 index 00000000..46f1e67a --- /dev/null +++ b/demo/static/img/.gitignore @@ -0,0 +1 @@ +JAMPY_Readme.gif diff --git a/docs/.readthedocs.yaml b/docs/.readthedocs.yaml new file mode 100644 index 00000000..e58fee76 --- /dev/null +++ b/docs/.readthedocs.yaml @@ -0,0 +1,23 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 +formats: all + +# Set the version of Python and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.11" + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: conf.py + +# We recommend specifying your dependencies to enable reproducible builds: +# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html +#python: +# install: +# - requirements: requirements.txt diff --git a/docs/_static/jquery.js b/docs/_static/jquery.js index eed17778..125695da 100644 --- a/docs/_static/jquery.js +++ b/docs/_static/jquery.js @@ -3169,7 +3169,7 @@ jQuery.Callbacks = function( options ) { return this; }, // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. + // If no argument is given, return whether or not list has callbacks attachd. has: function( fn ) { return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); }, @@ -4783,23 +4783,23 @@ if ( !support.focusinBubbles ) { jQuery.event.special[ fix ] = { setup: function() { var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ); + attachs = data_priv.access( doc, fix ); - if ( !attaches ) { + if ( !attachs ) { doc.addEventListener( orig, handler, true ); } - data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); + data_priv.access( doc, fix, ( attachs || 0 ) + 1 ); }, teardown: function() { var doc = this.ownerDocument || this, - attaches = data_priv.access( doc, fix ) - 1; + attachs = data_priv.access( doc, fix ) - 1; - if ( !attaches ) { + if ( !attachs ) { doc.removeEventListener( orig, handler, true ); data_priv.remove( doc, fix ); } else { - data_priv.access( doc, fix, attaches ); + data_priv.access( doc, fix, attachs ); } } }; @@ -5485,7 +5485,7 @@ function actualDisplay( name, doc ) { var style, elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), - // getDefaultComputedStyle might be reliably used only on attached element + // getDefaultComputedStyle might be reliably used only on attachd element display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? // Use of this method is a temporary fix (more like optimization) until something better comes along, diff --git a/docs/admin/accept_string.txt b/docs/admin/accept_string.txt index 2024f5bb..e0e740d5 100644 --- a/docs/admin/accept_string.txt +++ b/docs/admin/accept_string.txt @@ -11,7 +11,7 @@ Value Description file_extension Specify the file extension(s) (e.g: .gif, .jpg, .png, .doc) audio/* All sound files video/* All video files -image/* Aall image files +image/* All image files ============== =========== For example:: diff --git a/docs/admin/code_editor.txt b/docs/admin/code_editor.txt index d6f0dce4..98d1ac57 100644 --- a/docs/admin/code_editor.txt +++ b/docs/admin/code_editor.txt @@ -18,7 +18,7 @@ By clicking on these buttons the Code Editor for the client or server module of the item will be opened. (See :doc:`Working with modules `) -To the left of the **Edior** there is an information pane with four tabs: +To the left of the **Editor** there is an information pane with four tabs: * **Module** - this tab displays all events and functions defined in the editor, double-click on one of them to move the cursor to the proper function. @@ -39,11 +39,11 @@ Alt-F to display the Jam.py uses the `ace editor`_ editor to implement its code editor. -`Hear are keyboard shortcuts for the ace editor`_. +`Here are keyboard shortcuts for the ace editor`_. .. _ace editor: https://ace.c9.io -.. _Hear are Keyboard Shortcuts for the ace editor: https://github.com/ajaxorg/ace/wiki/Default-Keyboard-Shortcuts +.. _Here are Keyboard Shortcuts for the ace editor: https://github.com/ajaxorg/ace/wiki/Default-Keyboard-Shortcuts .. image:: _images/editor.png :align: center diff --git a/docs/admin/groups/item_group_editor.txt b/docs/admin/groups/item_group_editor.txt index bb6e69fb..0b51aa74 100644 --- a/docs/admin/groups/item_group_editor.txt +++ b/docs/admin/groups/item_group_editor.txt @@ -27,7 +27,7 @@ The upper part of the **Item Group Editor** have the following fields: for items that the group will own. You have to create this field first, see below In the center part of the **Item Group Editor** dialog there is a table -containing a list of fields, defined for the item. Thsese fields are +containing a list of fields, defined for the item. These fields are :doc:`common ` to all items the group will own. diff --git a/docs/admin/groups/table_group_editor.txt b/docs/admin/groups/table_group_editor.txt index 7ab903aa..2d4cbbc1 100644 --- a/docs/admin/groups/table_group_editor.txt +++ b/docs/admin/groups/table_group_editor.txt @@ -40,7 +40,7 @@ The upper part of the **Detail Group Editor** have the following fields: create this field first, see below In the center part of the **Detail Group Editor** dialog there is a table -containing a list of fields, defined for the item. Thsese fields are +containing a list of fields, defined for the item. These fields are :doc:`common ` to all items the group will own. diff --git a/docs/admin/index.txt b/docs/admin/index.txt index 5ef81696..a114738b 100644 --- a/docs/admin/index.txt +++ b/docs/admin/index.txt @@ -17,7 +17,7 @@ To run the Application builder go to a Web browser and type in the browser addre On the left side of the Application builder page there is a panel that contains the project tree. When you select any node of the project tree, as a rule, its -content will be opend in the central part of the page, and the bottom and right +content will be opened in the central part of the page, and the bottom and right side of the page may have buttons that allow you to modify the content. To see the changes made in Application builder go to the Project page and reload it. diff --git a/docs/admin/intergation_with_existing_database.txt b/docs/admin/intergation_with_existing_database.txt index e2be6b3a..0d75175f 100644 --- a/docs/admin/intergation_with_existing_database.txt +++ b/docs/admin/intergation_with_existing_database.txt @@ -1,5 +1,5 @@ ================================== -Intergation with existing database +Integration with existing database ================================== You can use Jam.py with existing database, that is supported by the framework. @@ -30,17 +30,17 @@ You can use Jam.py with existing database, that is supported by the framework. You can import a subset of fields in the table. Before saving, specify the primary key field for the item and generator name, - if nessesary. + if necessary. * After saving the imported item, go to the project page and check how it is displayed. -* After importing serveral tables, you can specify lookup fields (in DB manual mode). +* After importing several tables, you can specify lookup fields (in DB manual mode). .. note:: - Please, do be very carefull when performing this operations. + Please, do be very careful when performing this operations. When DB manual mode is removed any changes to the item will be reflected in the corresponding DB table. If you delete the item, the table will be dropped @@ -57,4 +57,4 @@ You can use Jam.py with existing database, that is supported by the framework. .. note:: This is a new feature, so if you have some comments, suggestions or found - some bugs please send a message. \ No newline at end of file + some bugs please send a message. diff --git a/docs/admin/items/field_editor_dialog.txt b/docs/admin/items/field_editor_dialog.txt index 755ffb2d..09ffae88 100644 --- a/docs/admin/items/field_editor_dialog.txt +++ b/docs/admin/items/field_editor_dialog.txt @@ -91,7 +91,7 @@ Interface tab * **TextArea** - for text fields if this attribute is set the textarea element will be created for these fields in the :doc:`Edit Form Dialog ` -* **Do not sanitize** - set this attributeto prevent default sanitizing of the +* **Do not sanitize** - set this attribute to prevent default sanitizing of the field value, see :doc:`Sanitizing ` * **Alignment** - determines the alignment of text in the controls that display @@ -148,8 +148,8 @@ Interface tab for Image field * **Edit width** - specifies the width of an image in pixels when it is displayed in the edit form. If it not specified the width is auto -* **Edit height** - specifies the heigth of an image in pixels when it is displayed - in the edit form. If it not specified the heigth is auto +* **Edit height** - specifies the height of an image in pixels when it is displayed + in the edit form. If it not specified the height is auto * **Capture from camera** - if this checkbox is set, the user will be able to capture image from camera. @@ -159,4 +159,4 @@ Interface tab for Image field Hold Ctrl key and double-click the image to clear the placeholder image. - \ No newline at end of file + diff --git a/docs/admin/items/item_editor_dialog.txt b/docs/admin/items/item_editor_dialog.txt index a26770b1..bdc4a5f6 100644 --- a/docs/admin/items/item_editor_dialog.txt +++ b/docs/admin/items/item_editor_dialog.txt @@ -80,7 +80,7 @@ In the bottom-right corner of the Dialog form there are two buttons: * **OK** - click this button to save change you made. If the **Virtual table** checkbox is not checked and **DB manual update** parameter in the project :doc:`Database Dialog` is not set, the application - will generate and execute SQL quesry to update the item table in the project + will generate and execute SQL query to update the item table in the project Database (changes made to the fields will be applied to the table). * **Cancel** - click this buttons to cancel the operation. diff --git a/docs/admin/project/database.txt b/docs/admin/project/database.txt index 7a926cd0..d532e3e4 100644 --- a/docs/admin/project/database.txt +++ b/docs/admin/project/database.txt @@ -7,7 +7,7 @@ Database :align: center :alt: Database dialog -In this dialog project database pararameters are displayed. When they have been +In this dialog project database parameters are displayed. When they have been changed and OK button is clicked, the Application builder will check connection to the database and if it failed to connect an error will be displayed. @@ -23,7 +23,7 @@ automatically modified. For example, if we add a new field to some item in the is checked, no modifications to the database tables are made. .. note:: - Please be very carefull when using this option. + Please be very careful when using this option. Examples of database setups =========================== diff --git a/docs/admin/project/parameters.txt b/docs/admin/project/parameters.txt index 90ad7660..741d13fe 100644 --- a/docs/admin/project/parameters.txt +++ b/docs/admin/project/parameters.txt @@ -24,7 +24,7 @@ On the General tab, you can specify general parameters of the project: :doc:`Roles ` ). -* **Debugging** - if this checkbox is checked, the Werkzeug libarary bebugger will +* **Debugging** - if this checkbox is checked, the Werkzeug library debugger will be invoked when an error on the server occurs. * **Language** - use it to open Language Dialog. See @@ -72,7 +72,7 @@ On the General tab, you can specify general parameters of the project: :doc:`importing project metadata ` , otherwise it waits for 5 minutes or until all previous request - to the serverin the current process will be processed. + to the server in the current process will be processed. * **Delete reports after (hours)** - if a value is specified the generated reports that are located in the static/reports folder will be deleted after @@ -87,7 +87,7 @@ On the General tab, you can specify general parameters of the project: .. note:: When **Connection pool size** or **Persistent connection** parameters are - changed, the server applicaton must be restarted for changes to take effect. + changed, the server application must be restarted for changes to take effect. Interface tab diff --git a/docs/admin/saving_history.txt b/docs/admin/saving_history.txt index 2fb18727..fa8395cc 100644 --- a/docs/admin/saving_history.txt +++ b/docs/admin/saving_history.txt @@ -18,7 +18,7 @@ In the dialog that will appear click on the Create history item button :align: center :alt: New history item -The following mesage will appear when the item will be created: +The following message will appear when the item will be created: .. image:: _images/hist_item_created.png :align: center @@ -53,5 +53,5 @@ method .. note:: These changes can significantly increase the size of the database. - Please be carefull. + Please be careful. diff --git a/docs/conf.py b/docs/conf.py index 63ea13d4..6606ffe4 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,285 +1,290 @@ -# -*- coding: utf-8 -*- -# -# Jam.py documentation documentation build configuration file, created by -# sphinx-quickstart on Fri Sep 25 14:26:13 2015. -# -# 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 -import os -import shlex - -# 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('.')) - -# -- 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 = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.txt' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'contents' - -# General information about the project. -project = u'Jam.py' -copyright = u'2015, Andrew Yushev' -author = u'Andrew Yushev' - -# 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 = '2.0' -# The full version, including alpha/beta/rc tags. -#release = '7' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -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 = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -#default_role = None - -# 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 = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = 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 = 'bootstrap' -html_theme = 'jamdocs' - -# 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 = {} - -# Add any paths that contain custom themes here, relative to this directory. -html_theme_path = ['_templates'] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# 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 = '_static/favicon.ico' - -# 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 = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# 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 = True - -# 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 - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' -#html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'Jampydocumentationdoc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', - -# Latex figure (float) alignment -#'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'Jampydocumentation.tex', u'Jam.py documentation Documentation', - u'Andrew Yushev', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'jampydocumentation', u'Jam.py documentation Documentation', - [author], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'Jampydocumentation', u'Jam.py documentation Documentation', - author, 'Jampydocumentation', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# -*- coding: utf-8 -*- +# +# Jam.py documentation documentation build configuration file, created by +# sphinx-quickstart on Fri Sep 25 14:26:13 2015. +# +# 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 +import os +import shlex + +# 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('.')) + +# -- 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 = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# source_suffix = ['.rst', '.md'] +source_suffix = '.txt' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'contents' + +# General information about the project. +project = u'Jam.py' +copyright = u'2015, Andrew Yushev' +author = u'Andrew Yushev' + +# 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 = '2.0' +# The full version, including alpha/beta/rc tags. +#release = '7' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +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 = ['_build'] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +#default_role = None + +# 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 = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +#keep_warnings = False + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = 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 = 'bootstrap' +html_theme = 'jamdocs' + +# 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 = {} + +# Add any paths that contain custom themes here, relative to this directory. +html_theme_path = ['_templates'] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# 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 = '_static/favicon.ico' + +# 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 = ['_static'] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +#html_extra_path = [] + +# 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 = True + +# 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 + +# Language to be used for generating the HTML full-text search index. +# Sphinx supports the following languages: +# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' +# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' +#html_search_language = 'en' + +# A dictionary with options for the search language support, empty by default. +# Now only 'ja' uses this config value +#html_search_options = {'type': 'default'} + +# The name of a javascript file (relative to the configuration directory) that +# implements a search results scorer. If empty, the default will be used. +#html_search_scorer = 'scorer.js' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'Jampydocumentationdoc' + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', + +# Latex figure (float) alignment +#'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'Jampydocumentation.tex', u'Jam.py documentation Documentation', + u'Andrew Yushev', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'jampydocumentation', u'Jam.py documentation Documentation', + [author], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'Jampydocumentation', u'Jam.py documentation Documentation', + author, 'Jampydocumentation', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +#texinfo_no_detailmenu = False +latex_engine = "xelatex" +latex_use_xindy = False +latex_elements = { + "preamble": "\\usepackage[UTF8]{ctex}\n", +} diff --git a/docs/faq/faq_using_other_libraries.txt b/docs/faq/faq_using_other_libraries.txt index b5dcdd45..c4b624a6 100644 --- a/docs/faq/faq_using_other_libraries.txt +++ b/docs/faq/faq_using_other_libraries.txt @@ -4,7 +4,7 @@ Can I use other libraries in my application You can add javascript libraries to use them for programming on the client side. -It is better to place them in the *js* folders of the *static* dicrectory of the +It is better to place them in the *js* folders of the *static* directory of the project. And refer to them using the src attribute in the