Skip to main content

A plugin to quote file from docs

Project description

Embed File

A way to embed a file present in your docs. Support both wikilinks & normal links. Intended to be used by obsidian user.

Activate the plugin

  1. Run pip install mkdocs-embed-file-plugins
  2. Update your mkdocs.yml with :
    plugins:
      - search
      - embed_file
    
  3. Override your main.html with :
    {% extends "base.html" %}
    {% block extrahead %}
    
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.4/css/fontawesome.min.css" integrity="sha384-jLKHWM3JRmfMU0A5x5AkjWkw/EYfGUAGagvnfryNV3F9VqM98XiIH7VBGVoxVSc7" crossorigin="anonymous">
    {% endblock %}
    

[!IMPORTANT] You need to set the site_url in the mkdocs.yml to make the plugin work.

Usage

Usage wikilinks markdown links
cite a entire file ![[filename]] ![](filename)
Cite a heading part ![[filename#heading]] ![](filename#heading)
Cite a block ![[filename#^blockid]] ![](filename#^blockid)

CSS

The plugin will create :

  • A link to the original file, with the form of : <a href="original link" class="link_citation"><i class='fas fa-link'></i></a>
  • A div with the founded content : <div class="citation">content founded</div>
  • In case of the link / contents is not found the following block is created instead :
    <div class='citation'><a class='link_citation'><i class='fas fa-link'></i></a><p style="text-align: center; display: block"><i class="not_found"> link_alt </i> {a configured message}</p></div>
    
    The message for the not found file can be customized in mkdocs.yml. The default message is file not exists.

You can add a css in your docs/assets/css (or whatever the path is), and add it to your mkdocs.yml :

extra_css:
    - assets/css/embed_link.css

You can find an example of custom css in docs

Configuration

If you want, you can add compatibility with :

To do that, adjust your mkdocs.yml

markdown_extensions:
   - attr_list
   - nl2br
   - admonition
   - pymdownx.details
plugins:
   - search
   - callouts
   - custom-attributes:
        file: 'assets/css/custom_attributes.css'
   - embed_file:
        callouts: true
        custom-attribute: 'assets/css/custom_attributes.css' //need to be the same as in the config!
        language_message: 'file not exists.'

Note : Every extension set in markdown_extensions will be used for the converting, so you can use any extension you want.

Limitation

  • The embed file don't use plugin you would use.
  • Wikilinks ambiguity are not supported : the first file with the name are used.

Credit

Thanks to midnightprioriem for the tooltip plugin.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mkdocs_embed_file_plugin-2.0.11.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mkdocs_embed_file_plugin-2.0.11-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file mkdocs_embed_file_plugin-2.0.11.tar.gz.

File metadata

File hashes

Hashes for mkdocs_embed_file_plugin-2.0.11.tar.gz
Algorithm Hash digest
SHA256 6500fc342ebf8e4373ffffad64f2d3b85320738aa72ea5fa6c8dc2ec286ed33a
MD5 c536460e056360e37e9bff0f9deab214
BLAKE2b-256 0e8161dfa5726b9ac67971a13ffd12c782c0c202844474e55ac1ee56e162b457

See more details on using hashes here.

File details

Details for the file mkdocs_embed_file_plugin-2.0.11-py3-none-any.whl.

File metadata

File hashes

Hashes for mkdocs_embed_file_plugin-2.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 016de92fd0683d2be06bdfccc7d3dc9ca42fc231a4d3d53ce0ad3c1c29cb0255
MD5 44facc780fa51ce2b3e65066777a3e64
BLAKE2b-256 84f64a4bdb04be00ecc5b8b791e6451eb972ed0235234fc2a03eaa45b16be39d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page