본문 바로가기

[IT/Programming]/HTML related

Super Easy Edit (SEE) of docuK: 사용 설명서 (Manual | Documentation | Tutorial).

728x90
반응형

# Super Easy Edit (SEE) of docuK (MarkDown): 사용 설명서 (Manual | Documentation | Tutorial).

쉽게 문서를 작성합시다. Download the below file, and learn how to write SEE (Super Easy Edit) of docuK from the file texts. Replacing only <codeprint class="SEE">...</codeprint><!-- SEE --> part, write well-formatted extended-MarkDown documents easily.

Abstract | Description of docuK and SEE

This is an HTML document format named docuK which is rendered by JavaScript, jQuery, MathJax, and google code prettifier.
Specific features are
  • Changable mode, font-family.
  • Resizable font-size, line-height.
  • Table of contents.
  • Numbering of sections/figures/equations.
  • Citing references in bubble-shape pop up.
  • Refering figures and equations.
  • Refering anything with id and element with class="number".
  • Delayed(lazy)-loading of figures (images, iframes).
  • Delayed(lazy)-rendering of maths (MathJax). From 2023-06-01, MathJax is updated to render all equations in docuK or SEE (Super Easy Edit) in the beginning.
  • Auto code printing from `<codeprint id="code-id"></codeprint>` to `<pre id="pre-code-id"></pre>`. (For non-duplicate id handling, put empty <script></script> in the beginning right after h1 '#'.)
Quite similar to LaTeX or Wiki document, but extended a little bit.

Try it yourself

Edit the text and click the button below it to render the text to the docuK HTML format. Then the document will be represented beneath the textfield. You can use Shift+Enter for rendering. You can copy and paste the code in Copy and Paste where the full stand-alone code is.
For the full stand-alone code, put meta tags additionally <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> for encoding ('utf-8' is recommended. The html file must be saved with the same encoding.) and <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=3, user-scalable=yes"/> for mobile view.
# pure SEE (Super Easy Edit) of docuK (Markdown): 사용 설명서 (Manual | Documentation | Tutorial). The docuK rendered from the current text is being represented. ## Abstract | Description of docuK and SEE Specific features are
  • Changable mode, font-family.
  • Resizable font-size, line-height.
  • Table of contents.
  • Numbering of sections/figures/equations.
  • Citing references in bubble-shape pop up.
  • Refering figures and equations.
  • Refering anything with id and element with class="number".
  • Delayed(lazy)-loading of figures (images, iframes).
  • Delayed(lazy)-rendering of maths (MathJax). From 2023-06-01, MathJax is updated to render all equations in docuK or SEE (Super Easy Edit) in the beginning.
  • Auto code printing from `<codeprint id="code-id"></codeprint>` to `<pre id="pre-code-id"></pre>`.
Quite similar to LaTeX or Wiki document, but extended a little bit. ## PH ###/ Posting History Posting History is put here. This section is automatically hiden.
  • 2023-09-26 : Update.
  • 2023-05-18 : Update.
  • 2014-06-18 : First posting.
##/ Posting History ## COTD ###/ Categories of this document Categories of this document is put here with links to Lists of kipid's blog. This section is automatically hiden. ##/ Categories of this document ## Warning In this live demo, there is some limitations. Delayed loading, browser-info, code prettyprint, maths, and possibly some additional javascript codes which are called only once in the beginning (docuK-prepare.js), or which are using k.variables already asigned before, will not work in the afterward rendering. Only k.docuKProcess() will be called in this demo example. But when you put "docuK HTML part" into a html file or post it to blogs (which allows script), the full feature of docuK will be loaded and every functionality of docuK will work. ## TOC ##/ Table of Contents. Table will be automatically filled up. Details will be explained in the following sections. ## Statement Each statement or paragraph is splitted by double (or more than double) enters, e.g. /\n\n+/. If '#' and '<' comes first in a statement, the paragraph will be specially treated. ## DocuK and sections '#' indicates docuK, and '##' | '###' | '####' to sec | subsec | subsubsec. End of docuK: '#/', and end of section | subsec | subsubsec: '##/' | '###/' | '####/' are optional. Renderer detects end of something automatically according the hierarchy. End of something can be used as comments. Text after '#/' is ignored. Therefore use '#####/' for super concrete comment. Or just end of something which are not yet opened is OK. The following is ignored, as you see it in the rendered docuK. ###/ End of something can be used as comments. Text after '#/' is ignored. Therefore use '#####/' for super concrete comment. Or just end of something which are not yet opened is OK. ##[.class0#sec-Test] Section with class and id Section can have class and id attributes. Using the id, you can refer it like <refer class="sec-Test"></refer> .
Class and Id are asigned with [emmet style] like ##[.class0.class1.hiden#sec-Test] Section head.
```[.lang-html] ##[.class0#sec-Test] Section with class and id ```/ ## Predifined section: "PH", "TOC", "RRA", "COTD" There are three predefined sections. "PH": Posting History, "TOC": Table of Contents, "RRA": References and Related Articles, "COTD": Categories of this document. Possibly I will add more predefined sections which can be used frequently. See the predefined sections implemented below, and you can easily figure it out how to use it. ##[.no-sec-N#sec-No-sec-numbering] No section numbering (class="no-sec-N") To avoid section numbering, do it like this. ```[.lang-html] ##[.no-sec-N#sec-No-sec-numbering] No section numbering (class="no-sec-N") ```/ ###[#subsec-No-sec-numbering] SubSection of [.no-sec-N#sec-No-sec-numbering] ```[.lang-html] ###[#subsec-No-sec-numbering] SubSection of [.no-sec-N#sec-No-sec-numbering] ```/ ####[#subsubsec-No-sec-numbering] SubSubSection of [.no-sec-N#sec-No-sec-numbering] ```[.lang-html] ####[#subsubsec-No-sec-numbering] SubSubSection of [.no-sec-N#sec-No-sec-numbering] ```/ ## Citing RRA and Refering HTML elements with id. ```[.linenums.lang-html] <div class="p"> Ref. <cite class="ref-docuK"></cite>, Ref. <cite class="ref-docuKShort"></cite>. </div> <div class="p"> Eq. <refer class="eqq-1"></refer>, Eq. <refer class="eqq-2"></refer>. </div> <div class="p"> Fig. <refer class="fig-1"></refer> </div> <div class="p"> Code: <refer class="code-1"></refer> </div> <div class="p"> Sec. <refer class="sec-Test"></refer>, Sec. <refer class="sec-No-sec-numbering"></refer>, SubSec. <refer class="subsec-No-sec-numbering"></refer>, SubSubSec. <refer class="subsubsec-No-sec-numbering"></refer> </div> ```/
Ref. , Ref. .
Eq. , Eq. .
Fig.
Code:
Sec. , Sec. , SubSec. , SubSubSec.
There are the blow HTML elments in this docuK.SEE. ```[.linenums.lang-html] <!-- ## RRA with ol.refs --> <ol class="refs"> <div class="subsec"><h3>Main</h3></div> <li id="ref-docuK"><a href="https://kipid.tistory.com/entry/HTML-docuK-format-ver-20">kipid's blog - HTML docuK format ver. 2.1</a>;<br> // Updated regularly</li> <li id="ref-docuKShort"><a href="https://kipid.tistory.com/entry/docuK-short-copiable-version">kipid's blog - docuK short copiable version</a>;<br> // Updated regularly</li> </ol> <!-- ## eqq tag (LaTeX equations) --> <span class="emph"><eqq id="eqq-1"> \alpha \beta = \int f(\gamma) dx \sum_i \hat{H}_i </eqq></span> <eqq id="eqq-2"> \begin{split} \vec{x} &= x^{\bar{i}} \vec{e}_{\bar{i}} = x \vec{e}_x + y \vec{e}_y + z \vec{e}_z \\ &= x^{i} \vec{e}_{i} = r \vec{e}_r + \theta \vec{e}_{\theta} + \phi \vec{e}_{\phi} \\ &= x^{i'} \vec{e}_{i'} = u \vec{e}_u + v \vec{e}_v + w \vec{e}_w \\ \end{split} </eqq> <!-- ## figure tag (img or iframe such as youtube video) --> <figure id="fig-1"><div class="fig"> <img delayed-src="https://blog.kakaocdn.net/dn/bfXXOe/btr2D5LJWv8/8QVkGacKxfeA04512qPFk1/img.png" alt="img with delayed-src"> <div class="caption">Caption.</div> </div></figure> <!-- ## div tag with span.number HTML element. (span.number is cited as a text.) --> <div id="code-1"><span class="number">Java vertx server code example</span> ```[.scrollable.lang-java] import org.vertx.java.platform.Verticle; // Every Java verticle must extend the class org.vertx.java.platform.Verticle. You must override the start method - this is called by Vert.x when the verticle is started. import org.vertx.java.core.http.HttpServerRequest; public class HelloWorldServer extends Verticle { /////////////////////////////////////////////// // Called when the verticle is deployed. /////////////////////////////////////////////// @Override public void start() { ///////////////////////////////////////////// // Lambda exp with chaining. ///////////////////////////////////////////// vertx.createHttpServer().requestHandler( (HttpServerRequest req) -> { System.out.println("req.method(): "+req.method()); // GET, PUT, POST, DELETE, HEAD, OPTIONS, CONNECT, TRACE, PATCH req.response().putHeader("Content-Type","text/html"); req.response().end("<h1>Hello World</h1>"); req.response().close(); }).listen(1001); } /////////////////////////////////////////////// // Called when the verticle is undeployed. /////////////////////////////////////////////// @Override public void stop(){ // do something. } } ```\/ // Hack to avoid closing "```" code. </div> ```/ ## PH ###/ Posting History Posting History is put here. This section is automatically hiden.
  • Posting History is put here.
  • 2014-06-18: First posting.
##/ Posting History ## TOC TOC is a self-closing section, i.e. no other texts can be put inside. Next text will be out of TOC. ##/ Table of Contents. Table will be automatically filled up. ## RRA ###/ References and Related Articles

    Main

  1. kipid's blog - HTML docuK format ver. 2.1;
    // Updated regularly
  2. kipid's blog - docuK short copiable version;
    // Updated regularly
  3. github.com - kipid - docuK
  4. Supported by

  5. jQuery.com; and jQuery - download;
    // JavaScript enhancer
  6. MathJax.org; and MathJax Documentation - latest; and The Core Configuration Options; and The MathJax.Hub Object;
    // Math renderer.
  7. Google Code Prettify and Getting Started;
    // Code prettyfier.
  8. API documentation

  9. jQuery - contents(): Get array of immediate children of element, including text nodes.
  10. MDN - CSS full reference; and especially Pseudo-classes is useful. Ex: element:nth-of-type(an + b) { style properties } element:nth-child(an + b) { style properties }
  11. Other markdown/markup languages

  12. LaTeX(라텍스, 레이텍) 소개 및 설명서(Guide)들, 2014-03-24
    // 다른 이런류의 편집기가 많긴 하지만, 그 기원(?)이라고 할 수 있는게 TeX/LaTeX 일듯. 그런데 이건 책이나 논문을 만드는데 목적을 두고 만들어진 것이라서 pdf 같은걸로 결과물을 주기 때문에 인터넷, IT 기기에서 사용하기에는 부적합해 보이기도.
    // 그래도 문법은 차용해서 쓰기 좋음.
  13. wikipedia.org;
    // Wikipedia uses its own markdown language.
  14. stackoverflow.com;
    // Stack Overflow uses its own markdown language.
  15. GitHub/adam-p - Markdown (GitHub); and live demo page
    // This might be used in GitHub wiki.
##/ References and Related Articles ## head (h2) of section section contents ### head (h3) of subsection contents of subsection #### head (h4) of subsubsection contents of subsubsection ####/ optional end of subsubsection ###/ optional end of subsection ##/ optional end of section ##[.hiden#sec-HidenSec] Initially Hiden Section With hiden class, the section will be hiden initially. ## Raw HTML Since learning and remembering something new takes time, this is designed to be just as simple as possible. And as what this actually do is simply renderring/making a text to the HTML format, new grammers will be minimized by adopting raw HTML grammers.
Raw HTML can be added like this. A paragraph starting with '<' will be appended without any change.
Raw text is appended as a paragraph, enclosed by <div class="p"></div>.
This is default comment box: <div class="cmt"></div>. You can put multiple paragraphs and nested htmls.
  • Unordered list 1.
  • Unordered list 2.
  1. Ordered list 1.
  2. Ordered list 2.
This is it.
This is default 'be careful' box: <div class="bcf"></div>.
## Links | URLs to appropriate html Planning to implement this. http://www.npr.org/blogs/health/2013/12/30/258376009/how-language-seems-to-shape-ones-view-of-the-world How Language Seems To Shape One's View Of The World , January 02, 2014, by ALAN YU. ## Figures
img with delayed-src
Caption.
## Maths or Equations Maths or Equations can be put by using \$TeX math\$, <eq>TeX math</eq>, and <eqq>TeX math</eqq>. The first two are converted to inline maths like $\alpha \beta = \int f(\gamma) dx \sum_i \hat{H}_i$. The last one is converted to outline math like \alpha \beta = \int f(\gamma) dx \sum_i \hat{H}_i \begin{split} \vec{x} &= x^{\bar{i}} \vec{e}_{\bar{i}} = x \vec{e}_x + y \vec{e}_y + z \vec{e}_z \\ &= x^{i} \vec{e}_{i} = r \vec{e}_r + \theta \vec{e}_{\theta} + \phi \vec{e}_{\phi} \\ &= x^{i'} \vec{e}_{i'} = u \vec{e}_u + v \vec{e}_v + w \vec{e}_w \\ \end{split} ## Codes Codes can be pretty-printed. Using <pre class="prettyprint scrollable lang-java">Codes to be pretty-printed.</pre>,
import org.vertx.java.platform.Verticle; // Every Java verticle must extend the class org.vertx.java.platform.Verticle. You must override the start method - this is called by Vert.x when the verticle is started.

import org.vertx.java.core.http.HttpServerRequest;


public class HelloWorldServer extends Verticle {
	///////////////////////////////////////////////
	// Called when the verticle is deployed.
	///////////////////////////////////////////////
	@Override
	public void start() {
		/////////////////////////////////////////////
		// Lambda exp with chaining.
		/////////////////////////////////////////////
		vertx.createHttpServer().requestHandler( (HttpServerRequest req) -> {
			System.out.println("req.method(): "+req.method()); // GET, PUT, POST, DELETE, HEAD, OPTIONS, CONNECT, TRACE, PATCH

			req.response().putHeader("Content-Type","text/html");
			req.response().end("<h1>Hello World</h1>");
			req.response().close();
		}).listen(1001);
	}

	///////////////////////////////////////////////
	// Called when the verticle is undeployed.
	///////////////////////////////////////////////
	@Override
	public void stop(){
		// do something.
	}
}
Using ```Codes to be pretty-printed.```/, or ```[Emmet style class and id attr like ".class-0.class-1#element-id"]Codes to be pretty-printed.```/,
Java vertx server code example ```[.scrollable.lang-java] import org.vertx.java.platform.Verticle; // Every Java verticle must extend the class org.vertx.java.platform.Verticle. You must override the start method - this is called by Vert.x when the verticle is started. import org.vertx.java.core.http.HttpServerRequest; public class HelloWorldServer extends Verticle { /////////////////////////////////////////////// // Called when the verticle is deployed. /////////////////////////////////////////////// @Override public void start() { ///////////////////////////////////////////// // Lambda exp with chaining. ///////////////////////////////////////////// vertx.createHttpServer().requestHandler( (HttpServerRequest req) -> { System.out.println("req.method(): "+req.method()); // GET, PUT, POST, DELETE, HEAD, OPTIONS, CONNECT, TRACE, PATCH req.response().putHeader("Content-Type","text/html"); req.response().end("<h1>Hello World</h1>"); req.response().close(); }).listen(1001); } /////////////////////////////////////////////// // Called when the verticle is undeployed. /////////////////////////////////////////////// @Override public void stop(){ // do something. } } ```/
## Fuzzy Search of Contents of the SEE document You can easily fuzzy-search contents of the SEE document with FS (Go: shortkey G). ## Header, Footer (Promoting recoeve.net) In header and footer, there are promotions of recoeve.net. You can set the recoeve page of yours with k.recoeveUserId="your-recoeve-id";, and k.recoCats="Current pages categories, ; separated multiple categories". You can disable these promotions with k.printMode=true setting. In this page, I set the recoeve-related variables like the below. ``` k.printMode=false; k.recoeveUserId="kipid"; k.recoCats="[IT/Programming]--MarkDown--docuK SEE (Super Easy Edit)"; ```/ So the iframe pages in the header and footer will be [IT/Programming]--MarkDown--docuK SEE (Super Easy Edit) of kipid's Recoeve.net (multireco mode). The default value of k.recoeveUserId="kipid" and k.recoCats="[Music/Break]--K-Pop", when those are not set or empty.

# Update History and pure SEE.html file

Update History

  • 2014-09-17: script tag 도 double enter 해결.
  • 2014-08-12: SEE 처리하는 JavaScript docuK-prepare.jsdocuK-postProcess.js로. 그리고 SEE 형태로만 posting 해도 잘 되도록 "codeprint.SEE" (<codeprint class="SEE"></codeprint>) 안에 넣으면 처리되도록 함.
  • 2014-08-12: code 넣는거 ``` 로 가능하게. 그리고 pre code print 할때 중간에 double enter가 들어가면 SEE에서 이상하게 처리했던거 해결.
  • 2014-08-12: section hiden option 같은 것들 가능하게. [Emmet] 형태로 class, id 부여 가능.
  • 2014-08-09: $("#text-edit-id").attr({contenteditable:false}); 같은걸로 rendering 되는 동안 편집 막기. Shift+Enter로 render trigger. Render가 되었는지 안되었는지 알려주려고 시간을 표시. (실패할 경우도 있을라나?)

Planning to do

  • ## COTD: Categories of this Document 구현하기.
  • Links | URLs to appropriate html. 그냥 HTML tag <a href=""></a> 쓰게 해도 될듯 하지만, 링크 다는건 자주 써먹을듯 하니... HTML tag로는 당연히 가능하게 하면서.
  • 처음에 <tag>가 오는데 paragraph로 처리하고 싶을때는 <div class="p"></div>를 낑겨 넣어야 하는듯. (double enter로 split 명령을 내리기 때문에 enter 다음에 space를 넣으면 당장은 해결 되는데... 바꿔줘야 할듯.)

Copy and Paste this code. (pure SEE.html)


728x90
반응형