Project documentation with Markdown.

Overview
Comments
  • Support theme localization (rework of #1778).

    Support theme localization (rework of #1778).

    This branch is an attempt to renew the efforts put by @anlau in #1778 in providing builtin theme localization support.

    mkdocs and readthedocs themes will support the 'locale' parameter which will use localized messages.po files to translate the theme templates.

    Contributors will thus be free to propose new messages.po for their own language.

    This PR proposes the 'en' (default) and 'fr' locales which should be compiled using : pybabel compile -d locales from the theme directory before they can be used.

    This code has also been tested and is compliant with the mkdocs-static-i18n plugin. The two of them combined provide a fully featured way to internationalize/localize your documentation.

    Update needed 
    opened by ultrabug 127
  • Plugin API.

    Plugin API.

    Hey Tom,

    I've worked on my own documentation generator for a while and used that but am in the process of upgrading it, so I wanted to see what was out there besides Sphinx (which is way to bloated). I came across this project and I really like the simplicity of it. One of the requirements I have for documentation is auto-module/class docs as a means to augment the prose style.

    I know you've already stated that you have no interest in that, but I was wondering if you'd be interested in allowing me to work with you on this project. I have all the code for generating docs that output a format like the ones used in Qt (http://qt-project.org/doc/qt-4.8/qdialog.html) from the python docs. I would propose simply adding a plugin architecture to mkdocs (similar to django/pyramid) that would allow a developer to run additional addons so as to not pollute the core of the project. Something like:

    site_name: my_site
    extensions:
           mkdocs_autodoc
    pages:
           - ['index.md', 'Introduction']
           - ['user-guide/creating.md', 'User Guide', 'Creating a new Marshmellow project']
           - ['autodoc:my_project', 'API', 'My Project']
    

    Where there would be a render hook that would dynamically generate the content from the my_project package as markdown files that could be then used and referenced from the prose style. I would be happy to work with you on the structure and provide the work I've been doing for the auto-class documentation as a plugin.

    Please let me know if this is something that you'd be interested in discussing, otherwise I may end up forking this project and implementing that as an option.

    Enhancement 
    opened by erichulser 88
  • Update Read The Docs theme with upstream

    Update Read The Docs theme with upstream

    The Upstream RTD theme has added some nice features for collapsing the navigation. You can see an example in pip Sphinx documentation. We have some users that could benifit from this, like GlusterFS, as they have many pages.

    As a side, I happen to think that it is a negative update for smaller projects so I could be tempted to make this optional. Perhaps with an extra: config value like "extra: collapsable_nav: True" which would be specific to this theme? It could either remove the feature totally or expand by default.

    Enhancement Theme-readthedocs 
    opened by d0ugal 68
  • Large search indexes can cause Lunr to freeze the page while it creates the index.

    Large search indexes can cause Lunr to freeze the page while it creates the index.

    When using readthedocs theme, search shows "no results" for a few seconds while search is being performed, and then results are loaded. However, few seconds are enough to convince the users nothing is found, and they move on.

    For example see: http://docs.datatorrent.com Try searching for "test" and you will see the following for a while:

    image

    Perhaps an indicator of search in progress can be added?

    Bug Plugin 
    opened by sashadt 56
  • Building hidden pages

    Building hidden pages

    Is it possible to tell mkdocs to build pages but not have them show up in the side bar? If it is possible, an example of how to do this in the documentation would be great.

    I asked this question here as well: https://groups.google.com/forum/#!topic/mkdocs/ILW9-SIdERs

    Enhancement 
    opened by jhamman 53
  • Display yaml properties in markdown

    Display yaml properties in markdown

    Summary

    It would be helpful to render yaml key-values in markdown.

    As now we have no convenient way to document for example configuration variables. These are common in technical documentation and displaying these variables as links is not really an option. Updating each document is time consuming comparing to the situation where we have these variables explicitly defined.

    Current problem

    If I change the development environment ip-address I need to go through all the documentation and update each document which refers to this ip-address.

    Example solution

    application-properties.yaml

    environment.development.ip: 127.0.0.1
    environment.development.port: 8000
    
    1. Connect to application server admin console and update the application.
    2. Test the application:
    $ curl  {{ environment.development.ip }} : {{ environment.development.port }} 
    

    would be rendered to:

    $ curl 127.0.0.1:8000
    

    Additional goals

    Additionally you could create an external yaml file which would have some or all the properties defined.

    Enhancement 
    opened by ghost 49
  • Include gh-import source in MkDocs to solve windows path issues.

    Include gh-import source in MkDocs to solve windows path issues.

    I wana publish my doc to a github page, i can't seem to get it to work with mkdocs gh-deploy but i know how to do with via

    Checking out the gh-pages branch and committing the site folder to GitHub.

    Bug 
    opened by w3guy 47
  • Reimplement livereload in a simpler and better way

    Reimplement livereload in a simpler and better way

    This discards the dependency on 'livereload' and 'tornado'. This implementation is based on stdlib http.server and is much smaller, while not being a downgrade in any way.

    This fixes #2061: multiple file changes no longer cause the site to repeatedly rebuild. It also makes reloads much more responsive; they're "instant" rather than being on a 1-second polling interval or such.

    I also was careful to keep backwards compatibility, including providing logging messages that feel just like the old ones.

    Each HTML page gets JavaScript injected into it (like before) but now, instead of connecting to WebSocket, it requests a long-polling endpoint, which blocks until a newer version ("epoch") of the site is available - then the page knows to reload itself. After a minute without events, the endpoint will just return the unchanged epoch (to avoid timeouts), then the page requests the same endpoint again. The "downtime" in between requests is not a problem because these are not events that need to be received in real time; the endpoint can instantly report that the latest version is newer than the one the page identified itself as.

    The reason to replace WebSocket isn't that it's bad or something, just that stdlib doesn't have it. But long-polling works completely fine here too.


    I am presenting this implementation here as part of the MkDocs repository itself. That is because this way people can try it easily, as well as review it easily, without external boilerplate. I also actually think that it would be good for MkDocs to have the flexibility provided by an inlined implementation. But if you think this should be made into a library, I'd be happy to provide that. In fact, I'll probably do that in any case. Just need a good name for it...

    opened by oprypin 42
  • Move builtin themes to external packages other than MkDocs and ReadTheDocs

    Move builtin themes to external packages other than MkDocs and ReadTheDocs

    This needs a few remaining things done:

    • [x] Fix the to theme issues https://github.com/mkdocs/mkdocs-bootswatch/issues/1 and https://github.com/mkdocs/mkdocs-bootstrap/issues/1
    • [x] Move MkDocs theme issues to the relevant repos
    • [x] Document how to make theme packages
    • [x] Add to the release notes
    Needs further review 
    opened by d0ugal 41
  • Search feature doesn't work off mkdocs master

    Search feature doesn't work off mkdocs master

    Reposting from https://groups.google.com/forum/#!msg/mkdocs/AmwN77dwcsE/oqxJ9YlyCSUJ

    I forked mkdocs from git master (in order to make some modifications, PR https://github.com/mkdocs/mkdocs/pull/752 pending), and search stopped working for me. It worked when using the released version of mkdocs; in both cases using Python 2.7.10 on OS X Yosemite.

    The error I get is

    [W 151117 14:26:20 web:1946] 404 GET /mkdocs/js/search-results-template.mustache (127.0.0.1) 5.50ms
    

    There is no additional info when running with debug on (mkdocs serve -v). On my docs site, there is no error message, only "Sorry, page not found" when trying to search for anything. The console shows:

    Failed to load resource: the server responded with a status of 404 (Not Found)  http://127.0.0.1:8000/mkdocs/js/search-results-template.mustache
    require.js:8 Uncaught Error: ./mkdocs/js/search-results-template.mustache HTTP status: 404
    

    Let me know if I can help debug this any better, thanks. Advice on a workaround would be great too, as I have to keep running mkdocs off master, and would like to have search.

    Bug 
    opened by dmehra 40
  • Enable GitHub Discussions for this Repository

    Enable GitHub Discussions for this Repository

    GitHub made their Discussions open Beta and I strongly believe that this repository could benefit from having this.

    Why? People like me feel kinda uncomfortable to use issues for asking basic questions regarding the software/tool in general and often don't like to use sites/services like IRC or similar. Having a discussion here would help us to more easily ask questions since it now would have a dedicated place for it and as an added bonus could be used as a nice collection of answers to questions someone might have.

    Needs design decision Process 
    opened by Andre601 36
  • Support .order file

    Support .order file

    Hi, do you have any plans to add or have seen an extension which adds support for .order file?

    I would love to move from azure wiki pages to mkdocs but don't want to manually create nav: section. https://learn.microsoft.com/en-us/azure/devops/project/wiki/wiki-file-structure?view=azure-devops#order-file

    The .order file defines the sequence of pages within the wiki. The following visual shows an example of a wiki TOC and it's corresponding .order file. The default hierarchy is in alphabetical sequence, however you can change this hierarchy in the .order file. For more information about how to reorder wiki pages, see Add and edit wiki pages, Reorder a wiki page.

    opened by rafalschmidt97 1
  • Feature: supress 0.0.0.0 dev_addr warning

    Feature: supress 0.0.0.0 dev_addr warning

    I am running mkdocs as docker:

    docker run --rm -t -p 8000:8000 -v $(PWD):/docs squidfunk/mkdocs-material
    

    However. I get the following error

    WARNING  -  Config value 'dev_addr': The use of the IP address '0.0.0.0' suggests a production environment or the use of a proxy to connect to the MkDocs server.
                However, the MkDocs' server is intended for local development purposes only. Please use a third party production-ready server instead.
    INFO     -  Building documentation...
    

    This error is reasonable when running the server in the host, but it is not reasonable when it is being run in a container, since in the default docker network, we must serve 0.0.0.0.

    In order to supress this warning, I had to run in host network, and override the default CMD (note that I use mkdocs-material/):

    docker run --rm -t -p 8000:8000 -v $(PWD):/docs --network host squidfunk/mkdocs-material serve --dev-addr=127.0.0.1:8000
    

    I think it would be useful to just add a configuration option or an environment variable which supresses that warning.

    opened by tomers 0
  • Add external links in default generated nav

    Add external links in default generated nav

    Added support for external link files to be included in automatic navigation generation.

    Closes #3074

    Implementation notes

    • Based on previous feedback, I kept some of the main syntax for the URL file but made the Windows inserted stuff optional (to still provide support for the windows bookmarks). The minimum configuration for the file (with a name following the pattern *.url) now looks like so:
    URL=https://example.org/example.html
    

    (or with a title)

    Title=Example Title
    URL=https://example.org/example.html
    
    • Titles will not be altered if provided in the file. If a title is not provided, then the file name will be processed just like md file titles and used (- and _ replaced with spaces and capitalized if they are lowercase).
    • Although the documentation doesn't explicitly state this, you could link a URL file in a configured nav object if you'd like. It will do the same as with the auto-generated nav, but won't override the nav configured title, if one is provided
    • Existing external link support (e.g. relative/absolute URL handling) should be preserved and unchanged from existing documentation.

    Unit tests have been updated and an external link file was added to the integration build.

    opened by bluenick2k17 0
  • Feature: Allow external links in automatically generated nav

    Feature: Allow external links in automatically generated nav

    Allow external links in automatically generated nav

    One problem statement that I've had with Mkdocs is that I do not have an ability to add external links to automatically generated navigation (when you don't provide a nav object in the configuration file). I'm interested to get feedback on adding this feature.

    If it would be desired, then I am happy to work on getting this implemented.

    Proposal

    The easiest solution I can think of would be to allow an additional kind of file in the site generation, *.url files. If a *.url file is found in the regular docs directory structure, then a link object will be added to the nav object with the title being the name of the file and the url being read from the file.

    Here is a small example directory structure:

    home/
    about/
    ├─ index.md
    ├─ My_Link.url
    

    Contents of My_Link.url (which should be a known format on Windows/Mac/Linux operating systems), and is the default for internet shortcuts on Windows:

    [InternetShortcut]
    URL=https://github.com
    
    opened by bluenick2k17 2
  • Update to rtd theme v1.1.1

    Update to rtd theme v1.1.1

    This PR brings RTD up to v1.1.1.

    Many of the upstream commits are for packaging and are not releated to mkdocs.

    Here is relevant notes from their changelog:

    Features

    • Nicer styles for https://github.com/readthedocs/sphinx_rtd_theme/pull/967
    • New styling for breadcrumbs https://github.com/readthedocs/sphinx_rtd_theme/pull/1073

    Fixes

    • Table cells with multiple paragraphs gets wrong formatting https://github.com/readthedocs/sphinx_rtd_theme/pull/1215
    • Definition lists rendered wrongly in api docs https://github.com/readthedocs/sphinx_rtd_theme/pull/1084
    • Citation not styled properly https://github.com/readthedocs/sphinx_rtd_theme/pull/1080
    • Long URLs did not wrap https://github.com/readthedocs/sphinx_rtd_theme/pull/1193
    • Fix wrapping bug on cross references https://github.com/readthedocs/sphinx_rtd_theme/issues/1369

    Upstream compare https://github.com/readthedocs/sphinx_rtd_theme/compare/1.0.0...1.1.1

    opened by Sparticuz 0
Releases(1.4.2)
  • 1.4.2(Nov 1, 2022)

    • Officially support Python 3.11 (#3020)

      Note: Simply upgrading to Python 3.11 can cut off 10-15% of your site's build time.

    • Support multiple instances of the same plugin (#3027)

      If a plugin is specified multiple times in the list under the plugins: config, that will create 2 (or more) instances of the plugin with their own config each.

      Previously this case was unforeseen and, as such, bugged.

      Now even though this works, by default a warning will appear from MkDocs anyway, unless the plugin adds a class variable supports_multiple_instances = True.

    • Bugfix (regression in 1.4.1): Don't error when a plugin puts a plain string into warnings (#3016)

    • Bugfix: Relative links will always render with a trailing slash (#3022)

      Previously under use_directory_urls, links from a sub-page to the main index page rendered as e.g. <a href="../.."> even though in all other cases the links look like <a href="../../">. This caused unwanted behavior on some combinations of Web browsers and servers. Now this special-case bug was removed.

    • Built-in "mkdocs" theme now also supports Norwegian language (#3024)

    • Plugin-related warnings look more readable (#3016)

    See commit log.

    Source code(tar.gz)
    Source code(zip)
  • 1.4.1(Oct 15, 2022)

    • Support theme-namespaced plugin loading (#2998)

      Plugins' entry points can be named as 'sometheme/someplugin'. That will have the following outcome:

      • If the current theme is 'sometheme', the plugin 'sometheme/someplugin' will always be preferred over 'someplugin'.
      • If the current theme isn't 'sometheme', the only way to use this plugin is by specifying plugins: [sometheme/someplugin].

      One can also specify plugins: ['/someplugin'] instead of plugins: ['someplugin'] to definitely avoid the theme-namespaced plugin.

    • Bugfix: mkdocs serve will work correctly with non-ASCII paths and redirects (#3001)

    • Windows: 'colorama' is now a dependency of MkDocs, to ensure colorful log output (#2987)

    • Plugin-related config options have more reliable validation and error reporting (#2997)

    • Translation sub-commands of setup.py were completely dropped. See documentation [1] [2] for their new replacements (#2990)

    • The 'mkdocs' package (wheel and source) is now produced by Hatch build system and pyproject.toml instead of setup.py (#2988)

    Other small improvements; see commit log.

    Source code(tar.gz)
    Source code(zip)
  • 1.4.0(Sep 27, 2022)

    Feature upgrades

    Hooks (#2978)

    The new hooks: config allows you to add plugin-like event handlers from local Python files, without needing to set up and install an actual plugin.

    See documentation.

    edit_uri flexibility (#2927)

    There is a new edit_uri_template: config.
    It works like edit_uri but more generally covers ways to construct an edit URL.
    See documentation.

    Additionally, the edit_uri functionality will now fully work even if repo_url is omitted (#2928)

    Upgrades for plugin developers

    Note: this release has big changes to the implementation of plugins and their configs. But, the intention is to have zero breaking changes in all reasonably common use cases. Or at the very least if a code fix is required, there should always be a way to stay compatible with older MkDocs versions. Please report if this release breaks something.

    Customize event order for plugin event handlers (#2973)

    Plugins can now choose to set a priority value for their event handlers. This can override the old behavior where for each event type, the handlers are called in the order that their plugins appear in the plugins config.

    If this is set, events with higher priority are called first. Events without a chosen priority get a default of 0. Events that have the same priority are ordered as they appear in the config.

    Recommended priority values: 100 "first", 50 "early", 0 "default", -50 "late", -100 "last".
    As different plugins discover more precise relations to each other, the values should be further tweaked.

    See documentation.

    New events that persist across builds in mkdocs serve (#2972)

    The new events are on_startup and on_shutdown. They run at the very beginning and very end of an mkdocs invocation.
    on_startup also receives information on how mkdocs was invoked (e.g. serve --dirtyreload).

    See documentation.

    Replace File.src_path to not deal with backslashes (#2930)

    The property src_path uses backslashes on Windows, which doesn't make sense as it's a virtual path.
    To not make a breaking change, there's no change to how this property is used, but now you should:

    • Use File.src_uri instead of File.src_path
    • and File.dest_uri instead of File.dest_path.

    These consistently use forward slashes, and are now the definitive source that MkDocs itself uses.

    See source code.

    As a related tip: you should also stop using os.path.* or pathlib.Path() to deal with these paths, and instead use posixpath.* or pathlib.PurePosixPath()

    MkDocs is type-annotated, ready for use with mypy (#2941, #2970)

    Type annotations for event handler methods (#2931)

    MkDocs' plugin event methods now have type annotations. You might have been adding annotations to events already, but now they will be validated to match the original.

    See source code and documentation.

    One big update is that now you should annotate method parameters more specifically as config: defaults.MkDocsConfig instead of config: base.Config. This not only makes it clear that it is the main config of MkDocs itself, but also provides type-safe access through attributes of the object (see next section).

    See source code and documentation.

    Rework ConfigOption schemas as class-based (#2962)

    When developing a plugin, the settings that it accepts used to be specified in the config_scheme variable on the plugin class.
    This approach is now soft-deprecated, and instead you should specify the config in a sub-class of base.Config.

    Old example:

    from mkdocs import plugins
    from mkdocs.config import base, config_options
    
    class MyPlugin(plugins.BasePlugin):
        config_scheme = (
            ('foo', config_options.Type(int)),
            ('bar', config_options.Type(str, default='')),
        )
    
        def on_page_markdown(self, markdown: str, *, config: base.Config, **kwargs):
            if self.config['foo'] < 5:
                if config['site_url'].startswith('http:'):
                    return markdown + self.config['baz']
    

    This code snippet actually has many mistakes but it will pass all type checks and silently run and even succeed in some cases.

    So, on to the new equivalent example, changed to new-style schema and attribute-based access:
    (Complaints from "mypy" added inline)

    from mkdocs import plugins
    from mkdocs.config import base, config_options as c
    
    class MyPluginConfig(base.Config):
        foo = c.Optional(c.Type(int))
        bar = c.Type(str, default='')
    
    class MyPlugin(plugins.BasePlugin[MyPluginConfig]):
        def on_page_markdown(self, markdown: str, *, config: base.MkDocsConfig, **kwargs):
            if self.config.foo < 5:  # Error, `foo` might be `None`, need to check first.
                if config.site_url.startswith('http:'):  # Error, MkDocs' `site_url` also might be `None`.
                    return markdown + self.config.baz  # Error, no such attribute `baz`!
    

    This lets you notice the errors from a static type checker before running the code and fix them as such:

    class MyPlugin(plugins.BasePlugin[MyPluginConfig]):
        def on_page_markdown(self, markdown: str, *, config: base.MkDocsConfig, **kwargs):
            if self.config.foo is not None and self.config.foo < 5:  # OK, `int < int` is valid.
                if (config.site_url or '').startswith('http:'):  # OK, `str.startswith(str)` is valid.
                    return markdown + self.config.bar  # OK, `str + str` is valid.
    

    See documentation.

    Also notice that we had to explicitly mark the config attribute foo as Optional.
    The new-style config has all attributes marked as required by default, and specifying required=False or required=True is not allowed!

    New: config_options.Optional (#2962)

    Wrapping something into Optional is conceptually similar to "I want the default to be None" -- and you have to express it like that, because writing default=None doesn't actually work.

    Breaking change: the method BaseConfigOption.is_required() was removed. Use .required instead. (#2938)
    And even the required property should be mostly unused now.
    For class-based configs, there's a new definition for whether an option is "required":

    • It has no default, and
    • It is not wrapped into config_options.Optional.

    New: config_options.ListOfItems (#2938)

    Defines a list of items that each must adhere to the same constraint. Kind of like a validated Type(list)

    Examples how to express a list of integers (with from mkdocs.config import config_options as c):

    Description | Code entry ----------- | ---------- Required to specify | foo = c.ListOfItems(c.Type(int)) Optional, default is [] | foo = c.ListOfItems(c.Type(int), default=[]) Optional, default is None | foo = c.Optional(c.ListOfItems(c.Type(int)))

    See more examples in documentation.

    Updated: config_options.SubConfig (#2807)

    SubConfig used to silently ignore all validation of its config options. Now you should pass validate=True to it or just use new class-based configs where this became the default.

    So, it can be used to validate a nested sub-dict with all keys pre-defined and value types strictly validated.

    See examples in documentation.

    Other changes to config options

    URL's default is now None instead of ''. This can still be checked for truthiness in the same way - if config.some_url: (#2962)

    FilesystemObject is no longer abstract and can be used directly, standing for "file or directory" with optional existence checking (#2938)

    Bug fixes:

    • Fix SubConfig, ConfigItems, MarkdownExtensions to not leak values across different instances (#2916, #2290)
    • SubConfig raises the correct kind of validation error without a stack trace (#2938)
    • Fix dot-separated redirect in config_options.Deprecated(moved_to) (#2963)

    Tweaked logic for handling ConfigOption.default (#2938)

    Deprecated config option classes: ConfigItems (#2983), OptionallyRequired (#2962), RepoURL (#2927)

    Theme updates

    • Styles of admonitions in "MkDocs" theme (#2981):

      • Update colors to increase contrast
      • Apply admonition styles also to <details> tag, to support Markdown extensions that provide it (pymdownx.details, callouts)
    • Built-in themes now also support these languages:

      • Russian (#2976)
      • Turkish (Turkey) (#2946)
      • Ukrainian (#2980)

    Future compatibility

    • extra_css: and extra_javascript: warn if a backslash \ is passed to them. (#2930, #2984)

    • Show DeprecationWarnings as INFO messages. (#2907)

      If any plugin or extension that you use relies on deprecated functionality of other libraries, it is at risk of breaking in the near future. Plugin developers should address these in a timely manner.

    • Avoid a dependency on importlib_metadata starting from Python 3.10 (#2959)

    • Drop support for Python 3.6 (#2948)

    Incompatible changes to public APIs

    • mkdocs.utils:
      • create_media_urls and normalize_url warn if a backslash \ is passed to them. (#2930)
      • is_markdown_file stops accepting case-insensitive variants such as .MD, which is how MkDocs build was already operating. (#2912)
      • Hard-deprecated: modified_time, reduce_list, get_html_path, get_url_path, is_html_file, is_template_file. (#2912)

    Miscellaneous

    • If a plugin adds paths to watch in LiveReloadServer, it can now unwatch them. (#2777)

    • Bugfix (regression in 1.2): Support listening on an IPv6 address in mkdocs serve. (#2951)

    Other small improvements; see commit log.

    Source code(tar.gz)
    Source code(zip)
  • 1.3.1(Jul 19, 2022)

    • Pin Python-Markdown version to <3.4, thus excluding its latest release that breaks too many external extensions (#2893)

    • When a Markdown extension fails to load, print its name and traceback (#2894)

    • Bugfix for "readthedocs" theme (regression in 1.3.0): add missing space in breadcrumbs (#2810)

    • Bugfix: don't complain when a file "readme.md" (lowercase) exists, it's not recognized otherwise (#2852)

    • Built-in themes now also support these languages:

      • Italian (#2860)

    Other small improvements; see commit log.

    Source code(tar.gz)
    Source code(zip)
  • 1.3.0(Mar 26, 2022)

    Feature upgrades

    • ReadTheDocs theme updated from v0.4.1 to v1.0.0 according to upstream (#2585)

      The most notable changes:

      • New option logo: Rather than displaying the site_name in the title, one can specify a path to an image to display instead.
      • New option anonymize_ip for Google Analytics.
      • Dependencies were upgraded: jQuery upgraded to 3.6.0, Modernizr.js dropped, and others.

      See documentation of config options for the theme

    • Built-in themes now also support these languages:

      • German (#2633)
      • Persian (Farsi) (#2787)
    • Support custom directories to watch when running mkdocs serve (#2642)

      MkDocs by default watches the docs directory and the config file. Now there is a way to add more directories to watch for changes, either via the YAML watch key or the command line flag --watch.

      Normally MkDocs never reaches into any other directories (so this feature shouldn't be necessary), but some plugins and extensions may do so.

      See documentation.

    • New --no-history option for gh_deploy (#2594)

      Allows to discard the history of commits when deploying, and instead replace it with one root commit

    Bug fixes

    • An XSS vulnerability when using the search function in built-in themes was fixed (#2791)

    • Setting the edit_uri option no longer erroneously adds a trailing slash to repo_url (#2733)

    Miscellaneous

    • Breaking change: the pages config option that was deprecated for a very long time now causes an error when used (#2652)

      To fix the error, just change from pages to nav.

    • Performance optimization: during startup of MkDocs, code and dependencies of other commands will not be imported (#2714)

      The most visible effect of this is that dependencies of mkdocs serve will not be imported when mkdocs build is used.

    • Recursively validate nav (#2680)

      Validation of the nested nav structure has been reworked to report errors early and reliably. Some edge cases have been declared invalid.

    Other small improvements; see commit log.

    Source code(tar.gz)
    Source code(zip)
  • 1.2.4(Mar 26, 2022)

    • Compatibility with Jinja2 3.1.0 (#2800)

      Due to a breaking change in Jinja2, MkDocs would crash with the message AttributeError: module 'jinja2' has no attribute 'contextfilter'

    Source code(tar.gz)
    Source code(zip)
  • 1.2.3(Oct 12, 2021)

    MkDocs 1.2.3 is a bugfix release for MkDocs 1.2.

    Aside: MkDocs has a new chat room on Gitter/Matrix. More details.

    Improvements:

    • Built-in themes now also support these languages:

      • Simplified Chinese (#2497)
      • Japanese (#2525)
      • Brazilian Portuguese (#2535)
      • Spanish (#2545, previously #2396)
    • Third-party plugins will take precedence over built-in plugins with the same name (#2591)

    • Bugfix: Fix ability to load translations for some languages: core support (#2565) and search plugin support with fallbacks (#2602)

    • Bugfix (regression in 1.2): Prevent directory traversal in the dev server (#2604)

    • Bugfix (regression in 1.2): Prevent webserver warnings from being treated as a build failure in strict mode (#2607)

    • Bugfix: Correctly print colorful messages in the terminal on Windows (#2606)

    • Bugfix: Python version 3.10 was displayed incorrectly in --version (#2618)

    Other small improvements; see commit log.

    Source code(tar.gz)
    Source code(zip)
  • 1.2.2(Jul 18, 2021)

    MkDocs 1.2.2 is a bugfix release for MkDocs 1.2 -- make sure you've seen the "major" release notes as well.

    • Bugfix (regression in 1.2): Fix serving files/paths with Unicode characters (#2464)

    • Bugfix (regression in 1.2): Revert livereload file watching to use polling observer (#2477)

      This had to be done to reasonably support usages that span virtual filesystems such as non-native Docker and network mounts.

      This goes back to the polling approach, very similar to that was always used prior, meaning most of the same downsides with latency and CPU usage.

    • Revert from 1.2: Remove the requirement of a site_url config and the restriction on use_directory_urls (#2490)

    • Bugfix (regression in 1.2): Don't require trailing slash in the URL when serving a directory index in mkdocs serve server (#2507)

      Instead of showing a 404 error, detect if it's a directory and redirect to a path with a trailing slash added, like before.

    • Bugfix: Fix gh_deploy with config-file in the current directory (#2481)

    • Bugfix: Fix reversed breadcrumbs in "readthedocs" theme (#2179)

    • Allow "mkdocs.yaml" as the file name when '--config' is not passed (#2478)

    • Stop treating ";" as a special character in URLs: urlparse -> urlsplit (#2502)

    • Improve build performance for sites with many pages (partly already done in 1.2) (#2407)

    Source code(tar.gz)
    Source code(zip)
A collection and example code of every topic you need to know about in the basics of Python.

The Python Beginners Guide: Master The Python Basics Tonight This guide is a collection of every topic you need to know about in the basics of Python.

Ahmed Baari 1 Dec 19, 2021
Read write method - Read files in various types of formats

一个关于所有格式文件读取的方法 1。 问题描述: 各种各样的文件格式,读写操作非常的麻烦,能够有一种方法,可以整合所有格式的文件,方便用户进行读取和写入。 2

2 Jan 26, 2022
In this Github repository I will share my freqtrade files with you. I want to help people with this repository who don't know Freqtrade so much yet.

My Freqtrade stuff In this Github repository I will share my freqtrade files with you. I want to help people with this repository who don't know Freqt

Simon Kebekus 104 Dec 31, 2022
Markdown documentation generator from Google docstrings

mkgendocs A Python package for automatically generating documentation pages in markdown for Python source files by parsing Google style docstring. The

Davide Nunes 44 Dec 18, 2022
Use Brainf*ck with python!

Brainfudge Run Brainf*ck code with python! Classes Interpreter(array_len): encapsulate all functions into class __init__(self, array_len: int=30000) -

1 Dec 14, 2021
Get link preview of a website.

Preview Link You may have seen a preview of a link with a title, image, domain, and description when you share a link on social media. This preview ha

SREEHARI K.V 8 Jan 08, 2023
A swagger tool for tornado, using python to write api doc!

SwaggerDoc About A swagger tool for tornado, using python to write api doc! Installation pip install swagger-doc Quick Start code import tornado.ioloo

aaashuai 1 Jan 10, 2022
Fully reproducible, Dockerized, step-by-step, tutorial on how to mock a "real-time" Kafka data stream from a timestamped csv file. Detailed blog post published on Towards Data Science.

time-series-kafka-demo Mock stream producer for time series data using Kafka. I walk through this tutorial and others here on GitHub and on my Medium

Maria Patterson 26 Nov 15, 2022
A Python package develop for transportation spatio-temporal big data processing, analysis and visualization.

English 中文版 TransBigData Introduction TransBigData is a Python package developed for transportation spatio-temporal big data processing, analysis and

Qing Yu 251 Jan 03, 2023
Course materials and handouts for #100DaysOfCode in Python course

#100DaysOfCode with Python course Course details page: talkpython.fm/100days Course Summary #100DaysOfCode in Python is your perfect companion to take

Talk Python 1.9k Dec 31, 2022
📚 Papers & tech blogs by companies sharing their work on data science & machine learning in production.

applied-ml Curated papers, articles, and blogs on data science & machine learning in production. ⚙️ Figuring out how to implement your ML project? Lea

Eugene Yan 22.1k Jan 03, 2023
This is the repository that includes the code material for the ESweek 2021 for the Education Class Lecture A3 "Learn to Drive (and Race!) Autonomous Vehicles"

ESweek2021_educationclassA3 This is the repository that includes the code material for the ESweek 2021 for the Education Class Lecture A3 "Learn to Dr

F1TENTH Autonomous Racing Community 29 Dec 06, 2022
💻An open-source eBook with 101 Linux commands that everyone should know

This is an open-source eBook with 101 Linux commands that everyone should know. No matter if you are a DevOps/SysOps engineer, developer, or just a Linux enthusiast, you will most likely have to use

Ashfaque Ahmed 0 Oct 29, 2022
Some of the best ways and practices of doing code in Python!

Pythonicness ❤ This repository contains some of the best ways and practices of doing code in Python! Features Properly formatted codes (PEP 8) for bet

Samyak Jain 2 Jan 15, 2022
NetBox plugin for BGP related objects documentation

Netbox BGP Plugin Netbox plugin for BGP related objects documentation. Compatibility This plugin in compatible with NetBox 2.10 and later. Installatio

Nikolay Yuzefovich 133 Dec 27, 2022
300+ Python Interview Questions

300+ Python Interview Questions

Pradeep Kumar 1.1k Jan 02, 2023
Python Deep Dive Course - Accompanying Materials

Python Deep Dive Various Jupyter notebooks and Python sources associated with my Udemy Python 3 Deep Dive course series: Part 1: Mainly functional pro

Fred Baptiste 1.1k Dec 30, 2022
Leetcode Practice

LeetCode Practice Description This is my LeetCode Practice. Visit LeetCode Website for detailed question description. The code in this repository has

Leo Hsieh 75 Dec 27, 2022
FxBuzzly - Buzzly.art links do not embed in Discord, this fixes them (rudimentarily)

fxBuzzly Buzzly.art links do not embed in Discord, this fixes them (rudimentaril

Dania Rifki 2 Oct 27, 2022
Generates, filters, parses, and cleans data regarding the financial disclosures of judges in the American Judicial System

This repository contains code that gets data regarding financial disclosures from the Court Listener API main.py: contains driver code that interacts

Ali Rastegar 2 Aug 06, 2022