2017-11-22 2 views
-1

다음 링크로 이동하여 번호 줄과 < > 태그를 추가하는 도구를 사용하고 있지만이를 수행하는 데 도움이되는 스크립트를 찾을 수없는 것을 보았습니다. 코드는 그렇게 보입니다. 누군가 나를 도울 수 있습니까?코드 가독 도구 코드에 가독성을 추가하기위한 도구

링크 :https://www.tutorialrepublic.com/html-reference/html5-output-tag.php

는 이미지 :

enter image description here

누군가가 나를 도울 수 있습니까?

<html> 
 
<head> </head> 
 
<body> 
 

 
\t <div> This is a div </div> 
 
\t <p>This is a paragraph.</p> 
 
\t <span>This is a span.</p> 
 
\t <ul> 
 
\t \t <li>red</li> 
 
\t \t <li>green</li> 
 
\t \t <li>blue</li> 
 
\t </ul> 
 
</body> 
 
</html>

나는 내 코드는 행 번호와 이미지처럼 보이게합니다. 도와주세요! 자습서로 웹 페이지에 샘플 코드를 작성할 때 필요합니다. 최종 사용자에게는 코드로만 볼 수 없지만 링크 번호와 강조 표시된 웹 페이지가 링크 된 상태로 표시되어야합니다. 그들은 어떤 도구를 사용했습니다 구문 형광펜하지만 어떻게했는지 잘 모르겠습니다.

+0

사용 라임을 자유롭게 사용하고 Pretiffy 플러그인 설치 –

답변

2

이 웹 사이트는 코드 서식을 지정하기 위해 CodeMiror을 사용하고 있습니다. 프로젝트에 구현할 수있는 온라인 편집기입니다. 또한 코드를 표현할 때도 사용할 수 있습니다.

나는 당신을 위해 일반적인 개념의 교수를 만들고자합니다. 내가 살 수있는 무언가를 만들 수 있다면, 나중에 여기에 첨부하겠습니다.

편집 : 여기 개념의 일반적인 교수가, 그것은 :

// array of all html tags taken from mdn 
 
var tagsArr = ["<\/?a", "<\/?abbr", "<\/?acronym", "<\/?address", "<\/?applet", "<\/?article", "<\/?aside", "<\/?audio", "<\/?b", "<\/?font", "<\/?bdi", "<\/?bdo", "<\/?bgsound", "<\/?big", "<\/?blink", "<\/?blockquote", "<\/?body", "<\/?button", "<\/?canvas", "<\/?caption", "<\/?center", "<\/?cite", "<\/?code", "<\/?colgroup", "<\/?data", "<\/?datalist", "<\/?dd", "<\/?del", "<\/?details", "<\/?dfn", "<\/?dir", "<\/?div", "<\/?dl", "<\/?dt", "<\/?em", "<\/?fieldset", "<\/?figcaption", "<\/?figure", "<\/?font", "<\/?footer", "<\/?form", "<\/?frame", "<\/?frameset", "<\/?h1", "<\/?h2", "<\/?h3", "<\/?h4", "<\/?h5", "<\/?h6", "<\/?head", "<\/?header", "<\/?hgroup", "<\/?html", "<\/?i", "<\/?ins", "<\/?isindex", "<\/?kbd", "<\/?label", "<\/?legend", "<\/?li", "<\/?listing", "<\/?map", "<\/?mark", "<\/?marquee", "<\/?menu", "<\/?meter", "<\/?nav", "<\/?nobr", "<\/?noframes", "<\/?noscript", "<\/?object", "<\/?ol", "<\/?optgroup", "<\/?option", "<\/?output", "<\/?p", "<\/?plaintext", "<\/?pre", "<\/?progress", "<\/?q", "<\/?rp", "<\/?rt", "<\/?ruby", "<\/?s", "<\/?samp", "<\/?script", "<\/?section", "<\/?select", "<\/?small", "<\/?spacer", "<\/?span", "<\/?strike", "<\/?strong", "<\/?style", "<\/?sub", "<\/?summary", "<\/?sup", "<\/?table", "<\/?tbody", "<\/?td", "<\/?textarea", "<\/?tfoot", "<\/?th", "<\/?thead", "<\/?time", "<\/?title", "<\/?tr", "<\/?tt", "<\/?u", "<\/?ul", "<\/?var", "<\/?video", "<\/?xmp", "<\/?area", "<\/?base", "<\/?br", "<\/?col", "<\/?command", "<\/?embed", "<\/?hr", "<\/?img", "<\/?input", "<\/?keygen", "<\/?link", "<\/?menuitem", "<\/?meta", "<\/?param", "<\/?source", "<\/?track", "<\/?wbr", "\/?>"]; 
 

 
// sort by tag name length so short tags don't get longer tag name 
 
tagsArr.sort(function(a, b) { 
 
    return a.length >= b.length 
 
}) 
 

 
var tagsStr = tagsArr.join("|"); 
 

 
var tagsRegEx = new RegExp(tagsStr, "g"); 
 

 
// array of all attributes, taken from w3school 
 
var attrsArray = ["baccept", "accept-charset", "accesskey", "action", "align", "alt", "async", "autocomplete", "autofocus", "autoplay", "bgcolor", "border", "charset", "checked", "cite", 'class(?!="(attr|attr-value|tag)")', "color", "cols", "colspan", "content", "contenteditable", "contextmenu", "controls", "coords", "data", "data-*", "datetime", "default", "defer", "dir", "dirname", "disabled", "download", "draggable", "dropzone", "enctype", "for", "form(?!\|)", "formaction", "headers", "height", "hidden", "high", "href", "hreflang", "http-equiv", "id", "ismap", "kind", "label(?!\|)", "lang", "list", "loop", "low", "max", "maxlength", "media(?!\|)", "method", "min", "multiple", "muted", "name", "novalidate", "onabort", "onafterprint", "onbeforeprint", "onbeforeunload", "onblur", "oncanplay", "oncanplaythrough", "onchange", "onclick", "oncontextmenu", "oncopy", "oncuechange", "oncut", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onhashchange", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmousewheel", "onoffline", "ononline", "onpagehide", "onpageshow", "onpaste", "onpause", "onplay", "onplaying", "onpopstate", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onsearch", "onseeked", "onseeking", "onselect", "onshow", "onstalled", "onstorage", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "onunload", "onvolumechange", "onwaiting", "onwheel", "open", "optimum", "pattern", "placeholder", "poster", "preload", "readonly", "rel", "required", "reversed", "rows", "rowspan", "sandbox", "scope", "scoped", "selected", "shape", "size", "sizes", "span(?!\|)", "spellcheck", "src", "srcdoc", "srclang", "srcset", "start", "step", "style", "tabindex", "target", "title(?!\|)", "translate", "type", "usemap", "value", "width", "wrap"]; 
 

 
// sort by attr name length so short attr don't get longer attr name 
 
attrsArray.sort(function(a, b) { 
 
    return a.length >= b.length 
 
}) 
 

 
var attrsStr = "(\\b" + attrsArray.join("\\b)(?!\")|(\\b") + "\\b)(?!\")"; 
 

 
var attrsRegEx = new RegExp(attrsStr, "g"); 
 

 
var pres = document.querySelectorAll("pre"); 
 

 
pres.forEach((code, idx) => { 
 
    var formatted; 
 
    code = code.innerText; 
 
    formatted = code.replace(tagsRegEx, (match) => { 
 
    // for tags that also has attr with same name, add a "|" in the end, later on will be removed 
 
    if (match.match(/(span)|(form)|(label)|(media)/)) { 
 
     match += "|"; 
 
    } 
 
    return `<span| class="tag">${match.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</span|>`; 
 
    }) 
 
    formatted = formatted.replace(attrsRegEx, (match) => { 
 
    return `<span| class="attr">${match}</span|>`; 
 
    }) 
 
    formatted = formatted.replace(/=("(?!(attr)|(attr-value)|(tag)).*?")/g, (match, $1) => { 
 
    return `=<span| class="attr-value">${$1}</span|>`; 
 
    }) 
 
    // remove all add "|" 
 
    formatted = formatted.replace(/\|/g, ""); 
 
    pres[idx].innerHTML = formatted; 
 
})
body { 
 
    background-color: white; 
 
} 
 

 
ol { 
 
    border: 1px solid #e5e5e5; 
 
    padding-left: 15px; 
 
} 
 

 
li:nth-child(even) { 
 
    background-color: #e5e5e5; 
 
} 
 

 
li:nth-child(odd) { 
 
    background-color: white; 
 
} 
 

 
li { 
 
    border-left: 2px solid lightgreen; 
 
    height: 100%; 
 
    font-size: 0.5em; 
 
} 
 

 
pre { 
 
    margin-left: 5px; 
 
    background-color: inherit; 
 
    font-size: 0.7em; 
 
    display: inline-block; 
 
} 
 

 
.tag { 
 
    color: blue; 
 
} 
 

 
.attr { 
 
    color: gray; 
 
} 
 

 
.attr-value { 
 
    color: purple; 
 
}
<ol> 
 
    <li> 
 
    <pre>&lt;form&gt;</pre> 
 
    </li> 
 
    <li> 
 
    <pre>&thinsp;&lt;label&gt;Formatted Form&lt;/label&gt;</pre> 
 
    </li> 
 
    <li> 
 
    <pre>&thinsp;&lt;input type="text" name="first" placeholder="first name" /&gt;</pre> 
 
    </li> 
 
    <li> 
 
    <pre>&thinsp;&lt;input type="text" name="last" placeholder="last name" /&gt;</pre> 
 
    </li> 
 
    <li> 
 
    <pre>&thinsp;&lt;input type="submit" value="send" /&gt;</pre> 
 
    </li> 
 
    <li> 
 
    <pre>&lt;/form&gt;</pre> 
 
    </li> 
 
</ol>

-2

진지하게, 나는 당신이하려는 것을 얻지 못하고 있습니다. 줄 번호에 대해 묻는다면, 그것들은 에디터 inbuilt 기능입니다. 당신은 더 나은 스타일을 부여하기 위해 더 나은 HTML 편집기를 사용해야합니다 & 요소.

당신은 당신은 숭고한 텍스트 3, 또는 Atom을 다운로드 할 수 있습니다 더 나은 stylings가

1

를 얻을 수 있습니다 sublime text 또는 notepad++

같은 기본 편집기를 시도하고 당신이 숭고한 텍스트 3, HTML CSS-싸게 치장 플러그인을 설치할 수 있습니다, 그것은 것입니다 너에게 도움이된다.