markdown中图片自动点击放大(使用sphinx build)

最近在研究build doc,功能很实用,主要通过custom.js自动给页面中的图片标签配置on click实现。

czonf.py中配置custom.js + cusom.css:

html_static_path = ["_static"]
html_css_files = ["custom.css"]
html_js_files = ['custom.js']

在custom.css中定义放大所需的css:

/* (A) LIGHTBOX BACKGROUND */
#lightbox {
    /* (A1) COVERS FULLSCREEN */
    position: fixed; z-index: 999;
    top: 0; left: 0;
    width: 100vw; height: 100vh;

    /* (A2) BACKGROUND */
    background: rgba(0, 0, 0, 0.5);

    /* (A3) CENTER IMAGE ON SCREEN */
    display: flex;
    align-items: center;
    align-items: center;

    /* (A4) HIDDEN BY DEFAULT */
    visibility: hidden;
    opacity: 0;

    /* (A5) SHOW/HIDE ANIMATION */
    transition: opacity ease 0.4s;
}
/* (A6) TOGGLE VISIBILITY */
#lightbox.show {
    visibility: visible;
    opacity: 1;
}
/* (B) LIGHTBOX IMAGE */
#lightbox img {
    /* (B1) DIMENSIONS */
    width: 100%;
    height: auto;

    /* (B2) IMAGE FIT */
    /* contain | cover | fill | scale-down */
    object-fit: cover;
}
/* (C) LIGHTBOX IMAGE - FULLSCREEN ALTERNATIVE *
#lightbox img {
    width: 100vw;
    height: 100vh;
    object-fit: cover;
}

在custom.js中配置事件,注意替换下方{your tag name},最后markdown中正常使用 ![my-image](link) build doc即可:

window.onload = () => {
    if (document.getElementById("lightbox") === null){
      // Append lightbox div to each page
      let div = document.createElement('div');
      div.innerHTML = '<div id="lightbox"></div>';
      document.body.appendChild(div);
    }

    // (A) GET LIGHTBOX & ALL .ZOOMD IMAGES
    # Replace the class name to your body class name
    let all = document.getElementsByClassName("{your tag name}")[0].getElementsByTagName("img"),
        lightbox = document.getElementById("lightbox");

    // (B) CLICK TO SHOW IMAGE IN LIGHTBOX
    // * SIMPLY CLONE INTO LIGHTBOX & SHOW
    if (all.length>0) { for (let i of all) {
      i.onclick = () => {
        let clone = i.cloneNode();
        clone.className = "";
        lightbox.innerHTML = "";
        lightbox.appendChild(clone);
        lightbox.className = "show";
      };
    }}

    // (C) CLICK TO CLOSE LIGHTBOX
    lightbox.onclick = () => {
      lightbox.className = "";
    };
};
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了在Sphinx使用Markdown格式的图片,您需要安装并配置一些必要的扩展和插件。首先,您需要安装主题`recommonmark`和`sphinx-markdown-tables`,可以使用以下命令进行安装: ``` pip install sphinx sphinx-autobuild sphinx_rtd_theme recommonmark sphinx-markdown-tables ``` 接下来,您还需要安装`sphinx-markdown-builder`插件,可以使用以下命令进行安装: ``` pip3 install sphinx-markdown-builder ``` 在您的Sphinx项目的`conf.py`文件,您需要添加一些扩展模块和插件的配置信息。您可以按照以下方式进行配置: ```python # 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.autodoc', 'rst2pdf.pdfbuilder' ] ``` 配置完成后,您就可以在Markdown文件使用图片了。您可以使用Markdown图片语法来插入图片,例如: ```markdown ![图片描述](图片链接) ``` 请确保您提供了正确的图片链接来显示所需的图片。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [使用sphinx+markdown来编写文档,生成html和pdf](https://blog.csdn.net/xiaohanshasha/article/details/121683859)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [sphinx-markdown-builder:输出markdown文件的sphinx构建器](https://download.csdn.net/download/weixin_42105570/15032293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值