简体   繁体   English

上传后如何在GitHub自述文件中保留HTML格式?

[英]How to retain HTML formatting in GitHub readme file upon upload?

So i formatted the README.md file of a particular GitHub project using HTML as I found markdown to be quite limiting. 因此,我使用HTML格式化了特定GitHub项目的README.md文件,因为我发现markdown相当有限。 Maybe I am not quite well versed with markdown or I prefer HTML, I am not sure. 也许我不太熟悉Markdown,或者我更喜欢HTML,但我不确定。 So the issue is, I have the README.md file on my local system and when I display it on browser using a Markdown plugin from Sublime Text, it shows up exactly as I want. 所以问题是,我的本地系统上有README.md文件,当我使用Sublime Text的Markdown插件在浏览器上显示它时,它完全按照我的需要显示。 But when I push the local README.md file to the server and try to view it in website, the formatting is lost completely. 但是,当我将本地README.md文件推送到服务器并尝试在网站上查看它时,格式完全丢失。

Local formatting - 本地格式-

本地README.md

GitHub website view - GitHub网站视图-

网站README.md

As you can see, the two files are totally different. 如您所见,这两个文件完全不同。 How can I preserve the formatting once it is uploaded on the GitHub server ? 将格式上传到GitHub服务器后,如何保存格式?

The following is the spaghetti HTML code. 以下是意大利面条的HTML代码。 It is very ugly. 这很丑。 I was in a hurry and so ended up with such ugly code violating every aspect of DRY. 我很着急,所以最终得到了如此丑陋的代码,违反了DRY的各个方面。 Please excuse that for now. 请原谅。

    <div class="header" style="width: 100%; display: flex;">
    <div style="font-size: 50px; font-family: arial; width: 50%;"> Blind Reader</div> 
    <div style="width: 50%; text-align: right; display: table; ">
        <span style=" letter-spacing: 5px; padding-left: 150px; font-family: verdana; font-size: 11px;  display: table-cell;vertical-align: middle ;  width: 20px;"> Developers </span>
        <a href="https://github.com/boudhayan-dev" style=" padding-right: 17px;"><img src="images/dev1.png" style="height: 60px; width: 60px;"></a>
        <a href="https://github.com/chinmay4382" style=" padding-right: 17px;"><img src="images/dev2.png" style="height: 60px; width: 60px;"></a>
    </div>
</div>

 <div class="badges-container">
    <div class="badges-body"> 
        [![Ask Me Anything !](https://img.shields.io/badge/Ask%20me-anything-1abc9c.svg?longCache=true&style=plastic)](https://GitHub.com/Naereen/ama) [![made-with-python](https://img.shields.io/badge/Made%20with-Python-blue.svg?longCache=true&style=plastic)](https://www.python.org/) [![GitHub license](https://img.shields.io/github/license/Naereen/StrapDown.js.svg?longCache=true&style=plastic)](https://github.com/Naereen/StrapDown.js/blob/master/LICENSE)  ![PyPI - Status](https://img.shields.io/pypi/status/Django.svg?style=plastic) ![Contributor](https://img.shields.io/badge/Contributors-2-orange.svg?longCache=true&style=plastic) 
    </div>
 </div>


<div class="body-content"> 
    <span style="font-size: 25px; font-family: verdana; color: #64686d;"> Welcome to the <span style="color: #18529b;">Blind Reader</span> project !</span>
    <br>
    <br>
    <div style="font-size: 18px; font-family: verdana; text-align: justify;" class="introduction">Blind Reader is a portable, low-cost, reading device made for the blind people. The Braille machines are expensive and as a result are not accessible to many. <strong>Blind Reader </strong>overcomes the limitation of conventional Braille machine by making it affordable for the common masses. The system uses OCR technology to convert images into text and reads out the text by using Text-to-Speech conversion.The system supports audio output via Speakers as well as headphone. The user also has the ability to pause the audio output whenever he desires. It also has the facility to store the images in their respective book folder, thereby creating digital backup simultaneously. With this system, the blind user does not require the complexity of Braille machine to read a book. All it takes is a button to control the entire system !
    </div>
    <div class="dependency" style="font-family: verdana; font-size: 18px; padding-top: 30px;">
        <span style="font-size: 30px; font-family: verdana; font-weight: 500;">Dependency</span>
        <div style="background:#757a79;height: 1.2px; width: 100%"></div><br>
        <span style="font-size: 18px; font-family: verdana; font-weight: 600;">Hardware Requirements:</span><br>
            <ul>
                <li>Raspberry Pi 3B.</li>
                <li>Pi Camera.</li>
                <li>Speakers / Headphones.</li>
                <li>Push buttons - 2.</li>
                <li>LDR - 1.</li>
                <li>LED - 4.</li>
                <li>Power supply - 5V,2A.</li>
            </ul>
        <span style="font-size: 18px; font-family: verdana; font-weight: 600;">Software Requirements:</span><br>
        <ul>
                <li>Python 3.</li>
                <li>Python Dependencies:</li>
                <ul>
                    <li>Rpi.GPIO</li>
                    <li>Pygame library.</li>
                    <li>picamera library.</li>
                    <li>google-cloud.</li>
                    <li>time.</li>
                    <li>os.</li>
                    <li>datetime.</li>
                </ul>
                <li>Google Cloud API - Vision , Text-to-Speech</li>
            </ul>
    </div>
    <div class="code"  style="font-family: verdana; font-size: 18px; padding-top: 30px;">
        <span style="font-size: 30px; font-family: verdana; font-weight: 500;">Usage</span>
        <div style="background:#757a79;height: 1.2px; width: 100%"></div><br>
    </div>
    <div class="usage-content" style="font-size: 18px; font-family: verdana; text-align: justify;">
        <ul>
            <li>
                Use the following code to install the Google cloud python dependency.<br><br><code>pip3 install --upgrade google-api-python-client<br>pip3 install --upgrade google-cloud-vision<br>pip3 install --upgrade google-cloud
                </code><br><br>
                Use : <a href="https://developers.google.com/api-client-library/python/apis/vision/v1">Google CLoud Vision API </a> for further Details.<br><br>
            </li>
            <li> Activate <strong>Cloud Vision API</strong> and <strong>Google Cloud Text-to-Speech API</strong> by visiting the dashboard and download the Service account credentials (Json file).</li>
            <br>
            <li>
                Connect the hardware as follows:
                <ul>
                    <li>
                        Pi Camera --> Camera Slot in Raspberry Pi 3.
                    </li>
                    <li>
                        Pair Bluetooth Speaker / Insert headphone into Raspberry Pi 3 audio jack.
                    </li>
                    <li>
                        LDR --> GPIO 37.
                    </li>
                    <li>
                        4 LEDs - GPIO 29 , 31 , 33 , 35 respectively.
                    </li>
                    <li>
                        Push Button 1 ( Camera capture ) --> GPIO 16.
                    </li>
                    <li>
                        Push Button 2 ( Play/Pause audio ) --> GPIO 18.
                    </li>
                </ul>
                <br>
            <li>
                Use the following code to start the system:
                <br>
                <code>
                    python3 //path/to/your/final.py/file
                </code>
            </li>
            <br>
            <li>
                Place the image to be read under the camera and press <code> Button 1 </code> to read out a page.
            </li>
        </ul>
    </div>
    <div class="system-images" style="font-family: verdana; font-size: 18px; padding-top: 30px;">
        <span style="font-size: 30px; font-family: verdana; font-weight: 500;">Demonstration</span>
        <div style="background:#757a79;height: 1.2px; width: 100%"></div>
    </div>
    <div class="image-cotainer" style="display: flex;">
        <div class="image1" style="width: 50%"> <img src="images/system1.jpg" style="width: 80%;"></div>
        <div class="image2" style="width: 50%"> <img src="images/system2.jpg" style=" width: 80%; height: 80%; padding-top: 40px;"></div>
    </div>
    <div class="resources-section" style="font-family: verdana; font-size: 18px;">
        <span style="font-size: 30px; font-family: verdana; font-weight: 500;">Resources</span>
        <div style="background:#757a79;height: 1.2px; width: 100%"></div>
    </div>
    <div class="resources-container" style="font-family: verdana; font-size: 18px;">
        <ul><br>
            <li>
                <a href="https://cloud.google.com/python/docs/reference/">Google Cloud Platform.</a>
            </li>
            <li>
                <a href="https://www.pygame.org/news">Pygame python library.</a>
            </li>
            <li>
                <a href="https://www.raspberrypi.org/">Raspberry Pi.</a>
            </li>
            <li>
                <a href="https://www.python.org/">Python.</a>
            </li>
        </ul>
    </div>


</div>

I have also takena look at this link . 我也看过这个链接 It lists all the tags that are whitelisted by GitHub. 它列出了GitHub白名单中的所有标签。 And as I can see almost all the tags I have used are present here. 正如我所看到的,我使用的几乎所有标签都在这里。

Please help. 请帮忙。

GitHub documents there markup filtering in the github/markup repo: GitHub在github / markup repo中提供了标记过滤的文档:

  1. This library converts the raw markup to HTML. 该库将原始标记转换为HTML。 See the list of supported markup formats below. 请参阅下面的支持的标记格式列表。
  2. The HTML is sanitized, aggressively removing things that could harm you and your kin—such as script tags, inline-styles, and class or id attributes. 对HTML进行了清理,积极删除了可能损害您和您的亲属的东西,例如script标签,内联样式以及classid属性。 See the sanitization filter for the full whitelist. 有关完整的白名单,请参阅清理过滤器
  3. Syntax highlighting is performed on code blocks. 语法高亮显示在代码块上。 See github/linguist for more information about syntax highlighting. 有关语法高亮的更多信息,请参见github / linguist
  4. The HTML is passed through other filters in the html-pipeline that add special sauce, such as emoji , task lists , named anchors , CDN caching for images , and autolinking . HTML通过html管道中的其他过滤器传递,这些过滤器添加了特殊的含义 ,例如表情符号任务列表命名锚点用于图像的CDN缓存自动链接
  5. The resulting HTML is rendered on GitHub.com. 生成的HTML呈现在GitHub.com上。

Note that step 1 is were the Markdown processing happens and that most likely returns the results you expect. 请注意,第1步是Markdown处理过程,最有可能返回您期望的结果。 The problem starts with step 2. Github takes the HTML returned in step 1 and sanitizes it extensively. 问题开始于步骤2。Github提取了步骤1中返回的HTML,并对其进行了广泛的清理。 This sanitation happens regardless of whether the source was Markdown, rst, texttile, asciidoc, or any number of other source formats.In other words, these filters have no direct relation to Markdown. 无论源是Markdown,rst,texttile,asciidoc还是任何其他多种源格式,都会执行这种卫生措施。换句话说,这些过滤器与Markdown没有直接关系。 So your Markdown is probably fine. 因此,您的Markdown可能还不错。

Given the extensive sanitation filters, any benefits of using Markdown's raw HTML fallback are almost completely lost. 有了广泛的卫生过滤器,使用Markdown的原始HTML后备广告所带来的任何好处都几乎完全丧失了。 Generally, I stick to plain Markdown in any document I expect to be rendered by GitHub as most anything that gets stripped by the filters would not be possible with plain Markdown anyway. 通常,在我希望由GitHub呈现的任何文档中,我都会坚持使用普通的Markdown,因为使用普通的Markdown几乎不可能实现所有被过滤器剥离的内容。

If you really want to find some workarounds, then you will need to study the sanitation filter yourself to see if there is any way to get what you want. 如果您确实想找到一些解决方法,那么您将需要自己研究卫生过滤器,以查看是否有任何方法可以得到您想要的东西。 I expect most of what you want will not be possible though. 我希望您将无法实现大部分需求。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM