mirror of
https://github.com/vlang/v.git
synced 2025-09-17 11:26:17 -04:00
vdoc: fix indentation in module readmes (#21220)
This commit is contained in:
parent
19ef7689a6
commit
6a3d8d28b5
@ -18,7 +18,6 @@ const link_svg = '<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0
|
|||||||
const single_quote = "'"
|
const single_quote = "'"
|
||||||
const double_quote = '"'
|
const double_quote = '"'
|
||||||
const no_quotes_replacement = [single_quote, '', double_quote, '']
|
const no_quotes_replacement = [single_quote, '', double_quote, '']
|
||||||
const md_script_escape_seq = ['<script>', '`', '</script>', '`']
|
|
||||||
|
|
||||||
enum HighlightTokenTyp {
|
enum HighlightTokenTyp {
|
||||||
unone
|
unone
|
||||||
@ -500,13 +499,12 @@ fn html_highlight(code string, tb &ast.Table) string {
|
|||||||
fn doc_node_html(dn doc.DocNode, link string, head bool, include_examples bool, tb &ast.Table) string {
|
fn doc_node_html(dn doc.DocNode, link string, head bool, include_examples bool, tb &ast.Table) string {
|
||||||
mut dnw := strings.new_builder(200)
|
mut dnw := strings.new_builder(200)
|
||||||
head_tag := if head { 'h1' } else { 'h2' }
|
head_tag := if head { 'h1' } else { 'h2' }
|
||||||
comments := dn.merge_comments_without_examples()
|
|
||||||
// Allow README.md to go through unescaped except for script tags
|
// Allow README.md to go through unescaped except for script tags
|
||||||
escaped_html := if head && is_module_readme(dn) {
|
escaped_html := if head && is_module_readme(dn) {
|
||||||
// Strip markdown [TOC] directives, since we generate our own.
|
// Strip markdown [TOC] directives, since we generate our own.
|
||||||
comments.replace('[TOC]', '').replace_each(md_script_escape_seq)
|
dn.comments[0].text
|
||||||
} else {
|
} else {
|
||||||
comments
|
dn.merge_comments()
|
||||||
}
|
}
|
||||||
mut renderer := markdown.HtmlRenderer{
|
mut renderer := markdown.HtmlRenderer{
|
||||||
transformer: &MdHtmlCodeHighlighter{
|
transformer: &MdHtmlCodeHighlighter{
|
||||||
|
@ -7,7 +7,7 @@ This is a [link](https://vlang.io/) to the main V site.
|
|||||||
|
|
||||||
This is a <b>bold text</b>.
|
This is a <b>bold text</b>.
|
||||||
|
|
||||||
This is a script <script>console.log('hi from README.md');</script> .
|
This is a script `<script>console.log('hi from README.md');</script>` .
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ This is an example of a an .md file, used for adding more rich text
|
|||||||
documentation in a project or module.
|
documentation in a project or module.
|
||||||
This is a link to the main V site.
|
This is a link to the main V site.
|
||||||
This is a bold text.
|
This is a bold text.
|
||||||
This is a script console.log('hi from README.md'); .
|
This is a script <script>console.log('hi from README.md');</script> .
|
||||||
Examples
|
Examples
|
||||||
Processing command line args
|
Processing command line args
|
||||||
import os
|
import os
|
||||||
@ -68,7 +68,7 @@ fn auth_verify(secret string, token string) bool {
|
|||||||
|
|
||||||
This is a <b>bold text</b>.
|
This is a <b>bold text</b>.
|
||||||
|
|
||||||
This is a script <script>console.log('hi from README.md');</script> .
|
This is a script `<script>console.log('hi from README.md');</script>` .
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<section id="readme_main" class="doc-node">
|
<section id="readme_main" class="doc-node">
|
||||||
<div class="title"><h1> main <a href="#readme_main">#</a></h1></div>
|
<div class="title"><h1> main <a href="#readme_main">#</a></h1></div>
|
||||||
<h2>Description</h2><p>This is an example of a an .md file, used for adding more rich text documentation in a project or module.</p><p>This is a <a href="https://vlang.io/">link</a> to the main V site.</p><p>This is a <b>bold text</b>.</p><p>This is a script <code>console.log('hi from README.md');</code> .</p><h2>Examples</h2><h3>Processing command line args</h3><pre><code class="language-v"><span class="token keyword">import</span> os
|
<h2>Description</h2><p>This is an example of a an .md file, used for adding more rich textdocumentation in a project or module.</p><p>This is a <a href="https://vlang.io/">link</a> to the main V site.</p><p>This is a <b>bold text</b>.</p><p>This is a script <code><script>console.log('hi from README.md');</script></code> .</p><h2>Examples</h2><h3>Processing command line args</h3><pre><code class="language-v"><span class="token keyword">import</span> os
|
||||||
|
|
||||||
<span class="token keyword">fn</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
<span class="token keyword">fn</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||||
<span class="token keyword">dump</span><span class="token punctuation">(</span>os<span class="token punctuation">.</span>args<span class="token punctuation">)</span>
|
<span class="token keyword">dump</span><span class="token punctuation">(</span>os<span class="token punctuation">.</span>args<span class="token punctuation">)</span>
|
||||||
<span class="token keyword">dump</span><span class="token punctuation">(</span>os<span class="token punctuation">.</span>args<span class="token punctuation">.</span>len<span class="token punctuation">)</span>
|
<span class="token keyword">dump</span><span class="token punctuation">(</span>os<span class="token punctuation">.</span>args<span class="token punctuation">.</span>len<span class="token punctuation">)</span>
|
||||||
<span class="token keyword">assert</span> os<span class="token punctuation">.</span>args<span class="token punctuation">.</span>len <span class="token operator">&</span>gt<span class="token punctuation">;</span> <span class="token number">0</span>
|
<span class="token keyword">assert</span> os<span class="token punctuation">.</span>args<span class="token punctuation">.</span>len <span class="token operator">&</span>gt<span class="token punctuation">;</span> <span class="token number">0</span>
|
||||||
<span class="token punctuation">}</span></code></pre><h3>A JWT example (test syntax highlighting)</h3><pre><code class="language-v"><span class="token keyword">import</span> crypto<span class="token punctuation">.</span>hmac
|
<span class="token punctuation">}</span></code></pre><h3>A JWT example (test syntax highlighting)</h3><pre><code class="language-v"><span class="token keyword">import</span> crypto<span class="token punctuation">.</span>hmac
|
||||||
<span class="token keyword">import</span> crypto<span class="token punctuation">.</span>sha256
|
<span class="token keyword">import</span> crypto<span class="token punctuation">.</span>sha256
|
||||||
<span class="token keyword">import</span> encoding<span class="token punctuation">.</span>base64
|
<span class="token keyword">import</span> encoding<span class="token punctuation">.</span>base64
|
||||||
@ -13,42 +13,42 @@
|
|||||||
<span class="token keyword">import</span> time
|
<span class="token keyword">import</span> time
|
||||||
|
|
||||||
<span class="token keyword">struct</span> <span class="token symbol">JwtHeader</span> <span class="token punctuation">{</span>
|
<span class="token keyword">struct</span> <span class="token symbol">JwtHeader</span> <span class="token punctuation">{</span>
|
||||||
alg <span class="token builtin">string</span>
|
alg <span class="token builtin">string</span>
|
||||||
typ <span class="token builtin">string</span>
|
typ <span class="token builtin">string</span>
|
||||||
<span class="token punctuation">}</span>
|
<span class="token punctuation">}</span>
|
||||||
|
|
||||||
<span class="token keyword">struct</span> <span class="token symbol">JwtPayload</span> <span class="token punctuation">{</span>
|
<span class="token keyword">struct</span> <span class="token symbol">JwtPayload</span> <span class="token punctuation">{</span>
|
||||||
sub <span class="token builtin">string</span>
|
sub <span class="token builtin">string</span>
|
||||||
name <span class="token builtin">string</span>
|
name <span class="token builtin">string</span>
|
||||||
iat <span class="token builtin">int</span>
|
iat <span class="token builtin">int</span>
|
||||||
<span class="token punctuation">}</span>
|
<span class="token punctuation">}</span>
|
||||||
|
|
||||||
<span class="token keyword">fn</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
<span class="token keyword">fn</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||||
sw <span class="token operator">:=</span> time<span class="token punctuation">.</span><span class="token function">new_stopwatch</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
sw <span class="token operator">:=</span> time<span class="token punctuation">.</span><span class="token function">new_stopwatch</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||||
secret <span class="token operator">:=</span> <span class="token string">'your-256-bit-secret'</span>
|
secret <span class="token operator">:=</span> <span class="token string">'your-256-bit-secret'</span>
|
||||||
token <span class="token operator">:=</span> <span class="token function">make_token</span><span class="token punctuation">(</span>secret<span class="token punctuation">)</span>
|
token <span class="token operator">:=</span> <span class="token function">make_token</span><span class="token punctuation">(</span>secret<span class="token punctuation">)</span>
|
||||||
ok <span class="token operator">:=</span> <span class="token function">auth_verify</span><span class="token punctuation">(</span>secret<span class="token punctuation">,</span> token<span class="token punctuation">)</span>
|
ok <span class="token operator">:=</span> <span class="token function">auth_verify</span><span class="token punctuation">(</span>secret<span class="token punctuation">,</span> token<span class="token punctuation">)</span>
|
||||||
dt <span class="token operator">:=</span> sw<span class="token punctuation">.</span><span class="token function">elapsed</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">microseconds</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
dt <span class="token operator">:=</span> sw<span class="token punctuation">.</span><span class="token function">elapsed</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">microseconds</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||||
<span class="token function">println</span><span class="token punctuation">(</span><span class="token string">'token: </span><span class="token string_interp">$</span>{token}<span class="token string">'</span><span class="token punctuation">)</span>
|
<span class="token function">println</span><span class="token punctuation">(</span><span class="token string">'token: </span><span class="token string_interp">$</span>{token}<span class="token string">'</span><span class="token punctuation">)</span>
|
||||||
<span class="token function">println</span><span class="token punctuation">(</span><span class="token string">'auth_verify(secret, token): </span><span class="token string_interp">$</span>{ok}<span class="token string">'</span><span class="token punctuation">)</span>
|
<span class="token function">println</span><span class="token punctuation">(</span><span class="token string">'auth_verify(secret, token): </span><span class="token string_interp">$</span>{ok}<span class="token string">'</span><span class="token punctuation">)</span>
|
||||||
<span class="token function">println</span><span class="token punctuation">(</span><span class="token string">'Elapsed time: </span><span class="token string_interp">$</span>{dt}<span class="token string"> uS'</span><span class="token punctuation">)</span>
|
<span class="token function">println</span><span class="token punctuation">(</span><span class="token string">'Elapsed time: </span><span class="token string_interp">$</span>{dt}<span class="token string"> uS'</span><span class="token punctuation">)</span>
|
||||||
<span class="token punctuation">}</span>
|
<span class="token punctuation">}</span>
|
||||||
|
|
||||||
<span class="token keyword">fn</span> <span class="token function">make_token</span><span class="token punctuation">(</span>secret <span class="token builtin">string</span><span class="token punctuation">)</span> <span class="token builtin">string</span> <span class="token punctuation">{</span>
|
<span class="token keyword">fn</span> <span class="token function">make_token</span><span class="token punctuation">(</span>secret <span class="token builtin">string</span><span class="token punctuation">)</span> <span class="token builtin">string</span> <span class="token punctuation">{</span>
|
||||||
header <span class="token operator">:=</span> base64<span class="token punctuation">.</span><span class="token function">url_encode</span><span class="token punctuation">(</span>json<span class="token punctuation">.</span><span class="token function">encode</span><span class="token punctuation">(</span><span class="token symbol">JwtHeader</span><span class="token punctuation">{</span><span class="token string">'HS256'</span><span class="token punctuation">,</span> <span class="token string">'JWT'</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
header <span class="token operator">:=</span> base64<span class="token punctuation">.</span><span class="token function">url_encode</span><span class="token punctuation">(</span>json<span class="token punctuation">.</span><span class="token function">encode</span><span class="token punctuation">(</span><span class="token symbol">JwtHeader</span><span class="token punctuation">{</span><span class="token string">'HS256'</span><span class="token punctuation">,</span> <span class="token string">'JWT'</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||||
payload <span class="token operator">:=</span> base64<span class="token punctuation">.</span><span class="token function">url_encode</span><span class="token punctuation">(</span>json<span class="token punctuation">.</span><span class="token function">encode</span><span class="token punctuation">(</span><span class="token symbol">JwtPayload</span><span class="token punctuation">{</span><span class="token string">'1234567890'</span><span class="token punctuation">,</span> <span class="token string">'John Doe'</span><span class="token punctuation">,</span> <span class="token number">1516239022</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
payload <span class="token operator">:=</span> base64<span class="token punctuation">.</span><span class="token function">url_encode</span><span class="token punctuation">(</span>json<span class="token punctuation">.</span><span class="token function">encode</span><span class="token punctuation">(</span><span class="token symbol">JwtPayload</span><span class="token punctuation">{</span><span class="token string">'1234567890'</span><span class="token punctuation">,</span> <span class="token string">'John Doe'</span><span class="token punctuation">,</span> <span class="token number">1516239022</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||||
signature <span class="token operator">:=</span> base64<span class="token punctuation">.</span><span class="token function">url_encode</span><span class="token punctuation">(</span>hmac<span class="token punctuation">.</span><span class="token function">new</span><span class="token punctuation">(</span>secret<span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span><span class="token string">'</span><span class="token string_interp">$</span>{header}<span class="token string">.</span><span class="token string_interp">$</span>{payload}<span class="token string">'</span><span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
signature <span class="token operator">:=</span> base64<span class="token punctuation">.</span><span class="token function">url_encode</span><span class="token punctuation">(</span>hmac<span class="token punctuation">.</span><span class="token function">new</span><span class="token punctuation">(</span>secret<span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span><span class="token string">'</span><span class="token string_interp">$</span>{header}<span class="token string">.</span><span class="token string_interp">$</span>{payload}<span class="token string">'</span><span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||||
sha256<span class="token punctuation">.</span>sum<span class="token punctuation">,</span> sha256<span class="token punctuation">.</span>block_size<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
sha256<span class="token punctuation">.</span>sum<span class="token punctuation">,</span> sha256<span class="token punctuation">.</span>block_size<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||||
jwt <span class="token operator">:=</span><span class="token string">'</span><span class="token string_interp">$</span>{header}<span class="token string">.</span><span class="token string_interp">$</span>{payload}<span class="token string">.</span><span class="token string_interp">$</span>{signature}<span class="token string">'</span>
|
jwt <span class="token operator">:=</span><span class="token string">'</span><span class="token string_interp">$</span>{header}<span class="token string">.</span><span class="token string_interp">$</span>{payload}<span class="token string">.</span><span class="token string_interp">$</span>{signature}<span class="token string">'</span>
|
||||||
<span class="token keyword">return</span> jwt
|
<span class="token keyword">return</span> jwt
|
||||||
<span class="token punctuation">}</span>
|
<span class="token punctuation">}</span>
|
||||||
|
|
||||||
<span class="token keyword">fn</span> <span class="token function">auth_verify</span><span class="token punctuation">(</span>secret <span class="token builtin">string</span><span class="token punctuation">,</span> token <span class="token builtin">string</span><span class="token punctuation">)</span> <span class="token builtin">bool</span> <span class="token punctuation">{</span>
|
<span class="token keyword">fn</span> <span class="token function">auth_verify</span><span class="token punctuation">(</span>secret <span class="token builtin">string</span><span class="token punctuation">,</span> token <span class="token builtin">string</span><span class="token punctuation">)</span> <span class="token builtin">bool</span> <span class="token punctuation">{</span>
|
||||||
token_split <span class="token operator">:=</span> token<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">'.'</span><span class="token punctuation">)</span>
|
token_split <span class="token operator">:=</span> token<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">'.'</span><span class="token punctuation">)</span>
|
||||||
signature_mirror <span class="token operator">:=</span> hmac<span class="token punctuation">.</span><span class="token function">new</span><span class="token punctuation">(</span>secret<span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span><span class="token string">'</span><span class="token string_interp">$</span>{token_split<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>}<span class="token string">.</span><span class="token string_interp">$</span>{token_split<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>}<span class="token string">'</span><span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
signature_mirror <span class="token operator">:=</span> hmac<span class="token punctuation">.</span><span class="token function">new</span><span class="token punctuation">(</span>secret<span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span><span class="token string">'</span><span class="token string_interp">$</span>{token_split<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>}<span class="token string">.</span><span class="token string_interp">$</span>{token_split<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>}<span class="token string">'</span><span class="token punctuation">.</span><span class="token function">bytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||||
sha256<span class="token punctuation">.</span>sum<span class="token punctuation">,</span> sha256<span class="token punctuation">.</span>block_size<span class="token punctuation">)</span>
|
sha256<span class="token punctuation">.</span>sum<span class="token punctuation">,</span> sha256<span class="token punctuation">.</span>block_size<span class="token punctuation">)</span>
|
||||||
signature_from_token <span class="token operator">:=</span> base64<span class="token punctuation">.</span><span class="token function">url_decode</span><span class="token punctuation">(</span>token_split<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
signature_from_token <span class="token operator">:=</span> base64<span class="token punctuation">.</span><span class="token function">url_decode</span><span class="token punctuation">(</span>token_split<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||||
<span class="token keyword">return</span> hmac<span class="token punctuation">.</span><span class="token function">equal</span><span class="token punctuation">(</span>signature_from_token<span class="token punctuation">,</span> signature_mirror<span class="token punctuation">)</span>
|
<span class="token keyword">return</span> hmac<span class="token punctuation">.</span><span class="token function">equal</span><span class="token punctuation">(</span>signature_from_token<span class="token punctuation">,</span> signature_mirror<span class="token punctuation">)</span>
|
||||||
<span class="token punctuation">}</span></code></pre>
|
<span class="token punctuation">}</span></code></pre>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
@ -7,7 +7,7 @@ module main
|
|||||||
|
|
||||||
This is a <b>bold text</b>.
|
This is a <b>bold text</b>.
|
||||||
|
|
||||||
This is a script <script>console.log('hi from README.md');</script> .
|
This is a script `<script>console.log('hi from README.md');</script>` .
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user