wiki

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 1ed805dbd2e782b4c2c9b15b1e8dda23cb39b6a7
parent 6a578a1c62ffa2345ce958be429df271096f88d5
Author: al1-ce <al1-ce@null.net>
Date:   Thu, 10 Jul 2025 04:23:08 +0300

Implement basic wiki

Diffstat:
Mindex-pages.sh | 11+++++++----
Apublic/All_Pages.md | 4++++
Apublic/Index.md | 6++++++
Dpublic/all_pages.md | 4----
Mpublic/css/dark.css | 68++++++++++++++++++++++++++++++++++----------------------------------
Apublic/fonts/giko2.woff2 | 0
Mpublic/index.html | 98++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
Dpublic/index.md | 51---------------------------------------------------
Mpublic/js/plugins/copy-code.js | 68+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Mpublic/js/plugins/wikilink.js | 2+-
Apublic/js/prism/markdown.js | 415+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apublic/meta/Markdown_flavour.md | 42++++++++++++++++++++++++++++++++++++++++++
Apublic/meta/Style_guidelines.md | 14++++++++++++++
Apublic/wiki/AA.md | 100+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpublic/wiki/A_Topic.md | 0
Dpublic/wiki/BJapan.md | 0
Dpublic/wiki/CNameless_Rumia.md | 1-
Dpublic/wiki/Fsome.md | 0
Dpublic/wiki/wiki.md | 59-----------------------------------------------------------
19 files changed, 780 insertions(+), 163 deletions(-)

diff --git a/index-pages.sh b/index-pages.sh @@ -3,14 +3,17 @@ WIKI_PAGES="$(ls public/wiki --color=never -1 | grep ".md")" WIKI_PAGES="$(echo "$WIKI_PAGES" | sed -r 's|(.*)\.md$|[\1](wiki/\0)|')" -PAGES="$(echo -e "[index](/)\n$WIKI_PAGES")" +META_PAGES="$(ls public/meta --color=never -1 | grep ".md")" +META_PAGES="$(echo "$META_PAGES" | sed -r 's|(.*)\.md$|[\1](meta/\0)|')" + +PAGES="$(echo -e "[Index](/)\n$WIKI_PAGES\n$META_PAGES")" PAGES="$(echo "$PAGES" | sort)" -echo "||||" > public/all_pages.md -echo "|:-|:-|:-|" >> public/all_pages.md +echo "||||" > public/All_Pages.md +echo "|:-|:-|:-|" >> public/All_Pages.md -echo "$PAGES" | pr -s"|" -T -3 | sed "s/^/|/" | sed "s/$/|/" >> public/all_pages.md +echo "$PAGES" | pr -s"|" -T -3 | sed "s/^/|/" | sed "s/$/|/" >> public/All_Pages.md # echo "$PAGES" | pr -s"|" -T -3 | sed "s/^/|/" | sed "s/$/|/" diff --git a/public/All_Pages.md b/public/All_Pages.md @@ -0,0 +1,4 @@ +|||| +|:-|:-|:-| +|[AA](wiki/AA.md)|[Markdown_flavour](meta/Markdown_flavour.md)|[Style_guidelines](meta/Style_guidelines.md)| +|[Index](/)| diff --git a/public/Index.md b/public/Index.md @@ -0,0 +1,6 @@ +# Welcome to wiki@al1-ce + +This is an empty place for now and shall be for some time as I accumulate articles and whatnot. + +For now you could explore [[All Pages]], which wouldn't be much... + diff --git a/public/all_pages.md b/public/all_pages.md @@ -1,4 +0,0 @@ -|||| -|:-|:-|:-| -|[A_Topic](wiki/A_Topic.md)|[CNameless_Rumia](wiki/CNameless_Rumia.md)|[index](/)| -|[BJapan](wiki/BJapan.md)|[Fsome](wiki/Fsome.md)|[wiki](wiki/wiki.md)| diff --git a/public/css/dark.css b/public/css/dark.css @@ -79,17 +79,17 @@ /* --fg1: #ebdbb2; */ /* --fg0: #fbf1c7; */ -/* --mono-hue : 113; */ -/* --mono-saturation : 0%; */ + --mono-hue : 113; + --mono-saturation : 0%; /* /* Monochrome shades (darker) and tints (lighter) */ */ -/* --mono-shade3 : var(--fg1); /* #333333 */ */ -/* --mono-shade2 : var(--fg2); /* #4d4d4d */ */ -/* --mono-shade1 : var(--fg4); /* #666666 */ */ -/* --mono-base : var(--bg4); /* #808080 */ */ -/* --mono-tint1 : var(--bg2); /* #b3b3b3 */ */ -/* --mono-tint2 : var(--bg0_s); /* #e3e3e3 */ */ -/* --mono-tint3 : var(--bg0); /* #f7f7f7 */ */ + --mono-shade3 : #333333; + --mono-shade2 : #4d4d4d; + --mono-shade1 : #666666; + --mono-base : #808080; + --mono-tint1 : #b3b3b3; + --mono-tint2 : #e3e3e3; + --mono-tint3 : #f7f7f7; /* /* Theme */ */ /* --theme-hue : 204; */ @@ -97,26 +97,26 @@ /* --theme-lightness : 45%; */ /* --theme-color : hsl(var(--theme-hue), var(--theme-saturation), var(--theme-lightness)); */ -/* --base-background-color: var(--bg0); */ -/* --base-color : var(--fg1); */ + /* --base-background-color: var(--white); */ + /* --base-color : var(--black); */ --base-font-family : "Clear Sans", BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; -/* --base-font-size : 15px; */ - /* --base-font-weight : normal; */ -/* --base-letter-spacing : ; */ -/* --base-line-height : 1.7; */ + /* --base-font-size : 1rem; */ + --base-font-weight : normal; + /* --base-letter-spacing : ; */ + --base-line-height : 1.2; -/* --code-font-family : Inconsolata, Consolas, Menlo, Monaco, "Andale Mono WT", "Andale Mono", "Lucida Console", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; */ -/* --code-font-size : calc(var(--font-size-m) * 0.95); */ -/* --code-font-weight : normal; */ -/* --code-theme-background : var(--bg0_s); */ -/* --code-theme-text : var(--fg1); */ + --code-font-family : Inconsolata, Consolas, Menlo, Monaco, "Andale Mono WT", "Andale Mono", "Lucida Console", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; + --code-font-size : calc(var(--font-size-m) * 0.95); + --code-font-weight : normal; + --code-theme-background : var(--mono-tint2); + --code-theme-text : var(--black); -/* --mark-color: var(--fg1); */ -/* --mark-background: var(--bg3); */ + --mark-color: var(--red); + --mark-background: var(--dark-gray); -/* --blockquote-border-color: var(--bblue); */ + --blockquote-border-color: var(--blue); -/* --link-color: var(--bblue); */ + --link-color: var(--blue); /* --notice-background: var(--bg1); */ /* --notice-important-background: #2e2222ff; */ @@ -165,18 +165,18 @@ /* display: table; */ /* } */ -/* .markdown-section figure, .markdown-section p, .markdown-section ol, .markdown-section ul { */ -/* margin: 0.5em 0; */ -/* } */ +.markdown-section figure, .markdown-section p, .markdown-section ol, .markdown-section ul { + margin: 1em 0; +} -/* thead th:empty { */ -/* border: thin solid red !important; */ -/* display: none; */ -/* } */ +thead th:empty { + border: thin solid red !important; + display: none; +} -/* thead th { */ -/* border: var(--table-cell-border-width) solid var(--table-cell-border-color); */ -/* } */ +thead th { + border: var(--table-cell-border-width) solid var(--table-cell-border-color); +} /* .sidebar-nav hr { */ /* margin: 0.25em 0; */ diff --git a/public/fonts/giko2.woff2 b/public/fonts/giko2.woff2 Binary files differ. diff --git a/public/index.html b/public/index.html @@ -19,7 +19,13 @@ } .app-nav.no-badge { - right: 80px; + /* right: 80px; */ + /* left: 0; */ + } + + .markdown-section, .app-nav { + /* width: var(--content-max-width); */ + max-width: var(--content-max-width); } .app-nav { @@ -31,7 +37,8 @@ display: flex; align-items: flex-end; justify-content: flex-end; - margin-left: auto !important; + margin: 0 auto !important; + max-width: var(--content-max-width); } .app-nav > a { @@ -119,6 +126,63 @@ padding-bottom: 1rem; margin-top: 3.5rem; margin-bottom: 3.5rem; + line-height: var(--base-line-height); + } + + :root { + --sidebar-width: 0 !important; + } + + #main { + margin-bottom: 1rem; + } + + #customFooter { + padding-top: 0 !important; + border-top: none !important; + color: var(--black); + } + + #customFooter a { + color: var(--black) !important; + } + + ol, ul { + list-style: square; + } + + .docsify-copy-code-button { + padding: .5rem !important; + top: unset !important; + bottom: 0 !important; + } + + body .docsify-copy-code-button, body .docsify-copy-code-button:after { + border-radius: var(--border-radius-m, 0) !important; + border-top-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; + } + + @font-face{ font-family: 'giko2'; src: url("/fonts/giko2.woff2") format('woff2'); } + + pre[data-lang="aa"] { background: unset; } + + pre[data-lang="aa"] code { + font-family: MS PGothic,Mona,IPAMonaPGothic,"giko2",sans-serif !important; + font-size: 16px; + line-height: 18px; + + } + + pre[data-lang="aa"] button { display: none; } + pre[data-lang="aa"]::after { content: none !important; } + + .side-by-side { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + /* flex-wrap: wrap; */ } </style> <nav id="app-nav"> @@ -137,7 +201,7 @@ // logo: "https://avatars.githubusercontent.com/u/60989682?s=48&v=4", hideSidebar: false, routerMode: 'history', - homepage: 'index.md', + homepage: 'Index.md', loadNavbar: false, // !!!!!!! mergeNavbar: true, auto2top: true, @@ -146,8 +210,8 @@ subMaxLevel: 2, // sidebarrDisplayLevel: 1, alias: { - '/.*/_sidebar.md': '/all_pages.md', - '/_sidebar.md': '/all_pages.md' + '/.*/_sidebar.md': '/All_Pages.md', + '/_sidebar.md' : '/All_Pages.md' }, tabs: { persist: true, @@ -157,14 +221,27 @@ tabHeadings: true, }, copyCode: { - buttonText: '๐Ÿ“‹', - errorText: 'x', - successText: 'โœ“', + buttonText: 'Copy', + errorText: 'Error', + successText: 'Success', + // buttonText: '๐Ÿ“‹', + // errorText: 'x', + // successText: 'โœ“', }, search: { paths: 'auto', hideOtherSidebarContent: true, }, + customPageFooter: { + showPoweredBy: true, + // copyrightYear: '', + showCopyright: true, + // copyright: undefined, + copyrightOwnerName: 'al1-ce', + copyrightOwnerLink: 'https://al1-ce.dev', + // copyrightExtra: undefined, + useLocalStorage: false, + }, plugins: [ function(hook, vm) { hook.mounted(function() { @@ -210,14 +287,19 @@ <!-- - --------------------------------- Plugins ---------------------------------- - --> <script src="/js/plugins/tabs.js"></script> <script src="/js/plugins/copy-code.js"></script> + <link rel="stylesheet" href="/js/plugins/footer.css"> + <script src="/js/plugins/footer.js"></script> <!-- - ----------------------------- Prism languages ------------------------------ - --> <script src="/js/prism/d.js"></script> <script src="/js/prism/json.js"></script> <script src="/js/prism/bash.js"></script> + <script src="/js/prism/markdown.js"></script> <!-- wget https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-LANG.js --> <script> Prism.languages['sdl'] = Prism.languages.extend('clike'); + + Prism.languages.aa = { }; </script> </body> diff --git a/public/index.md b/public/index.md @@ -1,51 +0,0 @@ -# Welcome to wiki@al1-ce - -This is some website and I need to fill it with some text right now so we all know where this is going now. - -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Proin tortor purus platea sit eu id nisi litora libero. Neque vulputate consequat ac amet augue blandit maximus aliquet congue. Pharetra vestibulum posuere ornare faucibus fusce dictumst orci aenean eu facilisis ut volutpat commodo senectus purus himenaeos fames primis convallis nisi. - -Phasellus fermentum malesuada phasellus netus dictum aenean placerat egestas amet. Ornare taciti semper dolor tristique morbi. Sem leo tincidunt aliquet semper eu lectus scelerisque quis. Sagittis vivamus mollis nisi mollis enim fermentum laoreet. - -Curabitur semper venenatis lectus viverra ex dictumst nulla maximus. Primis iaculis elementum conubia feugiat venenatis dolor augue ac blandit nullam ac phasellus turpis feugiat mollis. Duis lectus porta mattis imperdiet vivamus augue litora lectus arcu. Justo torquent pharetra volutpat ad blandit bibendum accumsan nec elit cras luctus primis ipsum gravida class congue. - -Vehicula etiam elementum finibus enim duis feugiat commodo adipiscing tortor tempor elit. Et mollis consectetur habitant turpis tortor consectetur adipiscing vulputate dolor lectus iaculis convallis adipiscing. Nam hendrerit dignissim condimentum ullamcorper diam morbi eget consectetur odio in sagittis. - -- [[A link 1]] - Link 1 -- [[A link 2]] - Link 2 obviously -- [[A link 3]] - Link 3 apparently -- [[A link 5]] - Actually a link 4 in disguise - -[[all pages|TODO: think how to make easy list of all pages]] - -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Proin tortor purus platea sit eu id nisi litora libero. Neque vulputate consequat ac amet augue blandit maximus aliquet congue. Pharetra vestibulum posuere ornare faucibus fusce dictumst orci aenean eu facilisis ut volutpat commodo senectus purus himenaeos fames primis convallis nisi. - -Phasellus fermentum malesuada phasellus netus dictum aenean placerat egestas amet. Ornare taciti semper dolor tristique morbi. Sem leo tincidunt aliquet semper eu lectus scelerisque quis. Sagittis vivamus mollis nisi mollis enim fermentum laoreet. - -Curabitur semper venenatis lectus viverra ex dictumst nulla maximus. Primis iaculis elementum conubia feugiat venenatis dolor augue ac blandit nullam ac phasellus turpis feugiat mollis. Duis lectus porta mattis imperdiet vivamus augue litora lectus arcu. Justo torquent pharetra volutpat ad blandit bibendum accumsan nec elit cras luctus primis ipsum gravida class congue. - -Vehicula etiam elementum finibus enim duis feugiat commodo adipiscing tortor tempor elit. Et mollis consectetur habitant turpis tortor consectetur adipiscing vulputate dolor lectus iaculis convallis adipiscing. Nam hendrerit dignissim condimentum ullamcorper diam morbi eget consectetur odio in sagittis. - -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Proin tortor purus platea sit eu id nisi litora libero. Neque vulputate consequat ac amet augue blandit maximus aliquet congue. Pharetra vestibulum posuere ornare faucibus fusce dictumst orci aenean eu facilisis ut volutpat commodo senectus purus himenaeos fames primis convallis nisi. - -Phasellus fermentum malesuada phasellus netus dictum aenean placerat egestas amet. Ornare taciti semper dolor tristique morbi. Sem leo tincidunt aliquet semper eu lectus scelerisque quis. Sagittis vivamus mollis nisi mollis enim fermentum laoreet. - -Curabitur semper venenatis lectus viverra ex dictumst nulla maximus. Primis iaculis elementum conubia feugiat venenatis dolor augue ac blandit nullam ac phasellus turpis feugiat mollis. Duis lectus porta mattis imperdiet vivamus augue litora lectus arcu. Justo torquent pharetra volutpat ad blandit bibendum accumsan nec elit cras luctus primis ipsum gravida class congue. - -Vehicula etiam elementum finibus enim duis feugiat commodo adipiscing tortor tempor elit. Et mollis consectetur habitant turpis tortor consectetur adipiscing vulputate dolor lectus iaculis convallis adipiscing. Nam hendrerit dignissim condimentum ullamcorper diam morbi eget consectetur odio in sagittis. - -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Proin tortor purus platea sit eu id nisi litora libero. Neque vulputate consequat ac amet augue blandit maximus aliquet congue. Pharetra vestibulum posuere ornare faucibus fusce dictumst orci aenean eu facilisis ut volutpat commodo senectus purus himenaeos fames primis convallis nisi. - -Phasellus fermentum malesuada phasellus netus dictum aenean placerat egestas amet. Ornare taciti semper dolor tristique morbi. Sem leo tincidunt aliquet semper eu lectus scelerisque quis. Sagittis vivamus mollis nisi mollis enim fermentum laoreet. - -Curabitur semper venenatis lectus viverra ex dictumst nulla maximus. Primis iaculis elementum conubia feugiat venenatis dolor augue ac blandit nullam ac phasellus turpis feugiat mollis. Duis lectus porta mattis imperdiet vivamus augue litora lectus arcu. Justo torquent pharetra volutpat ad blandit bibendum accumsan nec elit cras luctus primis ipsum gravida class congue. - -Vehicula etiam elementum finibus enim duis feugiat commodo adipiscing tortor tempor elit. Et mollis consectetur habitant turpis tortor consectetur adipiscing vulputate dolor lectus iaculis convallis adipiscing. Nam hendrerit dignissim condimentum ullamcorper diam morbi eget consectetur odio in sagittis. - -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Proin tortor purus platea sit eu id nisi litora libero. Neque vulputate consequat ac amet augue blandit maximus aliquet congue. Pharetra vestibulum posuere ornare faucibus fusce dictumst orci aenean eu facilisis ut volutpat commodo senectus purus himenaeos fames primis convallis nisi. - -Phasellus fermentum malesuada phasellus netus dictum aenean placerat egestas amet. Ornare taciti semper dolor tristique morbi. Sem leo tincidunt aliquet semper eu lectus scelerisque quis. Sagittis vivamus mollis nisi mollis enim fermentum laoreet. - -Curabitur semper venenatis lectus viverra ex dictumst nulla maximus. Primis iaculis elementum conubia feugiat venenatis dolor augue ac blandit nullam ac phasellus turpis feugiat mollis. Duis lectus porta mattis imperdiet vivamus augue litora lectus arcu. Justo torquent pharetra volutpat ad blandit bibendum accumsan nec elit cras luctus primis ipsum gravida class congue. - -Vehicula etiam elementum finibus enim duis feugiat commodo adipiscing tortor tempor elit. Et mollis consectetur habitant turpis tortor consectetur adipiscing vulputate dolor lectus iaculis convallis adipiscing. Nam hendrerit dignissim condimentum ullamcorper diam morbi eget consectetur odio in sagittis. - diff --git a/public/js/plugins/copy-code.js b/public/js/plugins/copy-code.js @@ -5,4 +5,70 @@ * (c) 2017-2020 JP Erasmus <jperasmus11@gmail.com> * MIT license */ -!function(){"use strict";function s(o){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o})(o)}!function(o,e){void 0===e&&(e={});var t=e.insertAt;if(o&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css","top"===t&&n.firstChild?n.insertBefore(c,n.firstChild):n.appendChild(c),c.styleSheet?c.styleSheet.cssText=o:c.appendChild(document.createTextNode(o))}}(".docsify-copy-code-button,.docsify-copy-code-button span{cursor:pointer;transition:all .25s ease}.docsify-copy-code-button{position:absolute;z-index:1;top:0;right:0;overflow:visible;padding:.65em .8em;border:0;border-radius:0;outline:0;font-size:1em;background:grey;background:var(--theme-color,grey);color:#fff;opacity:0}.docsify-copy-code-button span{border-radius:3px;background:inherit;pointer-events:none}.docsify-copy-code-button .error,.docsify-copy-code-button .success{position:absolute;z-index:-100;top:50%;right:0;padding:.5em .65em;font-size:.825em;opacity:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.docsify-copy-code-button.error .error,.docsify-copy-code-button.success .success{right:100%;opacity:1;-webkit-transform:translate(-115%,-50%);transform:translate(-115%,-50%)}.docsify-copy-code-button:focus,pre:hover .docsify-copy-code-button{opacity:1}"),document.querySelector('link[href*="docsify-copy-code"]')&&console.warn("[Deprecation] Link to external docsify-copy-code stylesheet is no longer necessary."),window.DocsifyCopyCodePlugin={init:function(){return function(o,e){o.ready(function(){console.warn("[Deprecation] Manually initializing docsify-copy-code using window.DocsifyCopyCodePlugin.init() is no longer necessary.")})}}},window.$docsify=window.$docsify||{},window.$docsify.plugins=[function(o,r){o.doneEach(function(){var o=Array.apply(null,document.querySelectorAll("pre[data-lang]")),c={buttonText:"Copy to clipboard",errorText:"Error",successText:"Copied"};r.config.copyCode&&Object.keys(c).forEach(function(t){var n=r.config.copyCode[t];"string"==typeof n?c[t]=n:"object"===s(n)&&Object.keys(n).some(function(o){var e=-1<location.href.indexOf(o);return c[t]=e?n[o]:c[t],e})});var e=['<button class="docsify-copy-code-button">','<span class="label">'.concat(c.buttonText,"</span>"),'<span class="error">'.concat(c.errorText,"</span>"),'<span class="success">'.concat(c.successText,"</span>"),"</button>"].join("");o.forEach(function(o){o.insertAdjacentHTML("beforeend",e)})}),o.mounted(function(){document.querySelector(".content").addEventListener("click",function(o){if(o.target.classList.contains("docsify-copy-code-button")){var e="BUTTON"===o.target.tagName?o.target:o.target.parentNode,t=document.createRange(),n=e.parentNode.querySelector("code"),c=window.getSelection();t.selectNode(n),c.removeAllRanges(),c.addRange(t);try{document.execCommand("copy")&&(e.classList.add("success"),setTimeout(function(){e.classList.remove("success")},1e3))}catch(o){console.error("docsify-copy-code: ".concat(o)),e.classList.add("error"),setTimeout(function(){e.classList.remove("error")},1e3)}"function"==typeof(c=window.getSelection()).removeRange?c.removeRange(t):"function"==typeof c.removeAllRanges&&c.removeAllRanges()}})})}].concat(window.$docsify.plugins||[])}(); +! function() { + "use strict"; + + function s(o) { + return (s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) { + return typeof o + } : function(o) { + return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o + })(o) + }! function(o, e) { + void 0 === e && (e = {}); + var t = e.insertAt; + if (o && "undefined" != typeof document) { + var n = document.head || document.getElementsByTagName("head")[0], + c = document.createElement("style"); + c.type = "text/css", "top" === t && n.firstChild ? n.insertBefore(c, n.firstChild) : n.appendChild(c), c.styleSheet ? c.styleSheet.cssText = o : c.appendChild(document.createTextNode(o)) + } + }(".docsify-copy-code-button,.docsify-copy-code-button span{cursor:pointer;transition:all .25s ease}.docsify-copy-code-button{position:absolute;z-index:1;top:0;right:0;overflow:visible;padding:.65em .8em;border:0;border-radius:0;outline:0;font-size:1em;background:grey;background:var(--theme-color,grey);color:#fff;opacity:0}.docsify-copy-code-button span{border-radius:3px;background:inherit;pointer-events:none}.docsify-copy-code-button .error,.docsify-copy-code-button .success{position:absolute;z-index:-100;top:50%;right:0;padding:.5em .65em;font-size:.825em;opacity:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.docsify-copy-code-button.error .error,.docsify-copy-code-button.success .success{right:100%;opacity:1;-webkit-transform:translate(-115%,-50%);transform:translate(-115%,-50%)}.docsify-copy-code-button:focus,pre:hover .docsify-copy-code-button{opacity:1}"), document.querySelector('link[href*="docsify-copy-code"]') && console.warn("[Deprecation] Link to external docsify-copy-code stylesheet is no longer necessary."), window.DocsifyCopyCodePlugin = { + init: function() { + return function(o, e) { + o.ready(function() { + console.warn("[Deprecation] Manually initializing docsify-copy-code using window.DocsifyCopyCodePlugin.init() is no longer necessary.") + }) + } + } + }, window.$docsify = window.$docsify || {}, window.$docsify.plugins = [function(o, r) { + o.doneEach(function() { + var o = Array.apply(null, document.querySelectorAll("pre[data-lang]")), + c = { + buttonText: "Copy to clipboard", + errorText: "Error", + successText: "Copied" + }; + r.config.copyCode && Object.keys(c).forEach(function(t) { + var n = r.config.copyCode[t]; + "string" == typeof n ? c[t] = n : "object" === s(n) && Object.keys(n).some(function(o) { + var e = -1 < location.href.indexOf(o); + return c[t] = e ? n[o] : c[t], e + }) + }); + var e = ['<button class="docsify-copy-code-button">', '<span class="label">'.concat(c.buttonText, "</span>"), '<span class="error">'.concat(c.errorText, "</span>"), '<span class="success">'.concat(c.successText, "</span>"), "</button>"].join(""); + o.forEach(function(o) { + o.insertAdjacentHTML("beforeend", e) + }) + }), o.mounted(function() { + document.querySelector(".content").addEventListener("click", function(o) { + if (o.target.classList.contains("docsify-copy-code-button")) { + var e = "BUTTON" === o.target.tagName ? o.target : o.target.parentNode, + t = document.createRange(), + n = e.parentNode.querySelector("code"), + c = window.getSelection(); + t.selectNode(n), c.removeAllRanges(), c.addRange(t); + try { + document.execCommand("copy") && (e.classList.add("success"), setTimeout(function() { + e.classList.remove("success") + }, 1e3)) + } catch (o) { + console.error("docsify-copy-code: ".concat(o)), e.classList.add("error"), setTimeout(function() { + e.classList.remove("error") + }, 1e3) + } + "function" == typeof(c = window.getSelection()).removeRange ? c.removeRange(t) : "function" == typeof c.removeAllRanges && c.removeAllRanges() + } + }) + }) + }].concat(window.$docsify.plugins || []) +}(); diff --git a/public/js/plugins/wikilink.js b/public/js/plugins/wikilink.js @@ -41,7 +41,7 @@ function plugin(hook, vm) { } if (hashPath.indexOf('/') === 0) { //absolute path - return `<a href="#${hashPath}${topic}">${showText}</a>` + return `<a href="${hashPath}${topic}">${showText}</a>` } else { return `<a href="${relativePath}${hashPath}${topic}">${showText}</a>` } diff --git a/public/js/prism/markdown.js b/public/js/prism/markdown.js @@ -0,0 +1,415 @@ +(function (Prism) { + + // Allow only one line break + var inner = /(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source; + + /** + * This function is intended for the creation of the bold or italic pattern. + * + * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped. + * + * _Note:_ Keep in mind that this adds a capturing group. + * + * @param {string} pattern + * @returns {RegExp} + */ + function createInline(pattern) { + pattern = pattern.replace(/<inner>/g, function () { return inner; }); + return RegExp(/((?:^|[^\\])(?:\\{2})*)/.source + '(?:' + pattern + ')'); + } + + + var tableCell = /(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source; + var tableRow = /\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g, function () { return tableCell; }); + var tableLine = /\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source; + + + Prism.languages.markdown = Prism.languages.extend('markup', {}); + Prism.languages.insertBefore('markdown', 'prolog', { + 'front-matter-block': { + pattern: /(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/, + lookbehind: true, + greedy: true, + inside: { + 'punctuation': /^---|---$/, + 'front-matter': { + pattern: /\S+(?:\s+\S+)*/, + alias: ['yaml', 'language-yaml'], + inside: Prism.languages.yaml + } + } + }, + 'blockquote': { + // > ... + pattern: /^>(?:[\t ]*>)*/m, + alias: 'punctuation' + }, + 'table': { + pattern: RegExp('^' + tableRow + tableLine + '(?:' + tableRow + ')*', 'm'), + inside: { + 'table-data-rows': { + pattern: RegExp('^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'), + lookbehind: true, + inside: { + 'table-data': { + pattern: RegExp(tableCell), + inside: Prism.languages.markdown + }, + 'punctuation': /\|/ + } + }, + 'table-line': { + pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'), + lookbehind: true, + inside: { + 'punctuation': /\||:?-{3,}:?/ + } + }, + 'table-header-row': { + pattern: RegExp('^' + tableRow + '$'), + inside: { + 'table-header': { + pattern: RegExp(tableCell), + alias: 'important', + inside: Prism.languages.markdown + }, + 'punctuation': /\|/ + } + } + } + }, + 'code': [ + { + // Prefixed by 4 spaces or 1 tab and preceded by an empty line + pattern: /((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/, + lookbehind: true, + alias: 'keyword' + }, + { + // ```optional language + // code block + // ``` + pattern: /^```[\s\S]*?^```$/m, + greedy: true, + inside: { + 'code-block': { + pattern: /^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m, + lookbehind: true + }, + 'code-language': { + pattern: /^(```).+/, + lookbehind: true + }, + 'punctuation': /```/ + } + } + ], + 'title': [ + { + // title 1 + // ======= + + // title 2 + // ------- + pattern: /\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m, + alias: 'important', + inside: { + punctuation: /==+$|--+$/ + } + }, + { + // # title 1 + // ###### title 6 + pattern: /(^\s*)#.+/m, + lookbehind: true, + alias: 'important', + inside: { + punctuation: /^#+|#+$/ + } + } + ], + 'hr': { + // *** + // --- + // * * * + // ----------- + pattern: /(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m, + lookbehind: true, + alias: 'punctuation' + }, + 'list': { + // * item + // + item + // - item + // 1. item + pattern: /(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m, + lookbehind: true, + alias: 'punctuation' + }, + 'url-reference': { + // [id]: http://example.com "Optional title" + // [id]: http://example.com 'Optional title' + // [id]: http://example.com (Optional title) + // [id]: <http://example.com> "Optional title" + pattern: /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/, + inside: { + 'variable': { + pattern: /^(!?\[)[^\]]+/, + lookbehind: true + }, + 'string': /(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/, + 'punctuation': /^[\[\]!:]|[<>]/ + }, + alias: 'url' + }, + 'bold': { + // **strong** + // __strong__ + + // allow one nested instance of italic text using the same delimiter + pattern: createInline(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source), + lookbehind: true, + greedy: true, + inside: { + 'content': { + pattern: /(^..)[\s\S]+(?=..$)/, + lookbehind: true, + inside: {} // see below + }, + 'punctuation': /\*\*|__/ + } + }, + 'italic': { + // *em* + // _em_ + + // allow one nested instance of bold text using the same delimiter + pattern: createInline(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source), + lookbehind: true, + greedy: true, + inside: { + 'content': { + pattern: /(^.)[\s\S]+(?=.$)/, + lookbehind: true, + inside: {} // see below + }, + 'punctuation': /[*_]/ + } + }, + 'strike': { + // ~~strike through~~ + // ~strike~ + // eslint-disable-next-line regexp/strict + pattern: createInline(/(~~?)(?:(?!~)<inner>)+\2/.source), + lookbehind: true, + greedy: true, + inside: { + 'content': { + pattern: /(^~~?)[\s\S]+(?=\1$)/, + lookbehind: true, + inside: {} // see below + }, + 'punctuation': /~~?/ + } + }, + 'code-snippet': { + // `code` + // ``code`` + pattern: /(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/, + lookbehind: true, + greedy: true, + alias: ['code', 'keyword'] + }, + 'url': { + // [example](http://example.com "Optional title") + // [example][id] + // [example] [id] + pattern: createInline(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source), + lookbehind: true, + greedy: true, + inside: { + 'operator': /^!/, + 'content': { + pattern: /(^\[)[^\]]+(?=\])/, + lookbehind: true, + inside: {} // see below + }, + 'variable': { + pattern: /(^\][ \t]?\[)[^\]]+(?=\]$)/, + lookbehind: true + }, + 'url': { + pattern: /(^\]\()[^\s)]+/, + lookbehind: true + }, + 'string': { + pattern: /(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/, + lookbehind: true + } + } + } + }); + + ['url', 'bold', 'italic', 'strike'].forEach(function (token) { + ['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (inside) { + if (token !== inside) { + Prism.languages.markdown[token].inside.content.inside[inside] = Prism.languages.markdown[inside]; + } + }); + }); + + Prism.hooks.add('after-tokenize', function (env) { + if (env.language !== 'markdown' && env.language !== 'md') { + return; + } + + function walkTokens(tokens) { + if (!tokens || typeof tokens === 'string') { + return; + } + + for (var i = 0, l = tokens.length; i < l; i++) { + var token = tokens[i]; + + if (token.type !== 'code') { + walkTokens(token.content); + continue; + } + + /* + * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token + * is optional. But the grammar is defined so that there is only one case we have to handle: + * + * token.content = [ + * <span class="punctuation">```</span>, + * <span class="code-language">xxxx</span>, + * '\n', // exactly one new lines (\r or \n or \r\n) + * <span class="code-block">...</span>, + * '\n', // exactly one new lines again + * <span class="punctuation">```</span> + * ]; + */ + + var codeLang = token.content[1]; + var codeBlock = token.content[3]; + + if (codeLang && codeBlock && + codeLang.type === 'code-language' && codeBlock.type === 'code-block' && + typeof codeLang.content === 'string') { + + // this might be a language that Prism does not support + + // do some replacements to support C++, C#, and F# + var lang = codeLang.content.replace(/\b#/g, 'sharp').replace(/\b\+\+/g, 'pp'); + // only use the first word + lang = (/[a-z][\w-]*/i.exec(lang) || [''])[0].toLowerCase(); + var alias = 'language-' + lang; + + // add alias + if (!codeBlock.alias) { + codeBlock.alias = [alias]; + } else if (typeof codeBlock.alias === 'string') { + codeBlock.alias = [codeBlock.alias, alias]; + } else { + codeBlock.alias.push(alias); + } + } + } + } + + walkTokens(env.tokens); + }); + + Prism.hooks.add('wrap', function (env) { + if (env.type !== 'code-block') { + return; + } + + var codeLang = ''; + for (var i = 0, l = env.classes.length; i < l; i++) { + var cls = env.classes[i]; + var match = /language-(.+)/.exec(cls); + if (match) { + codeLang = match[1]; + break; + } + } + + var grammar = Prism.languages[codeLang]; + + if (!grammar) { + if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) { + var id = 'md-' + new Date().valueOf() + '-' + Math.floor(Math.random() * 1e16); + env.attributes['id'] = id; + + Prism.plugins.autoloader.loadLanguages(codeLang, function () { + var ele = document.getElementById(id); + if (ele) { + ele.innerHTML = Prism.highlight(ele.textContent, Prism.languages[codeLang], codeLang); + } + }); + } + } else { + env.content = Prism.highlight(textContent(env.content), grammar, codeLang); + } + }); + + var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi'); + + /** + * A list of known entity names. + * + * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function. + * + * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2} + */ + var KNOWN_ENTITY_NAMES = { + 'amp': '&', + 'lt': '<', + 'gt': '>', + 'quot': '"', + }; + + // IE 11 doesn't support `String.fromCodePoint` + var fromCodePoint = String.fromCodePoint || String.fromCharCode; + + /** + * Returns the text content of a given HTML source code string. + * + * @param {string} html + * @returns {string} + */ + function textContent(html) { + // remove all tags + var text = html.replace(tagPattern, ''); + + // decode known entities + text = text.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi, function (m, code) { + code = code.toLowerCase(); + + if (code[0] === '#') { + var value; + if (code[1] === 'x') { + value = parseInt(code.slice(2), 16); + } else { + value = Number(code.slice(1)); + } + + return fromCodePoint(value); + } else { + var known = KNOWN_ENTITY_NAMES[code]; + if (known) { + return known; + } + + // unable to decode + return m; + } + }); + + return text; + } + + Prism.languages.md = Prism.languages.markdown; + +}(Prism)); diff --git a/public/meta/Markdown_flavour.md b/public/meta/Markdown_flavour.md @@ -0,0 +1,42 @@ +# wiki@al1-ce markdown flavour + +## Wikilinks +```md +[[Direct Link]] + - links to Direct_Link article in current directory + - https://wiki.al1-ce.dev/CURRENT_DIR/Direct_Link +[[Direct Link|Custom text]] + - same as above but with custom text +[[Direct Link#Header]] + - same as above but linking to certain header +[[/meta/Style Guidelines|Style Guidelines]] + - same as above but using absolute path + - https://wiki.al1-ce.dev/meta/Style_Guidelines +``` + +## Inline code +More of a way to colour (TODO add actual color syntax) normal text + +- k - {@k keyword} +- n - {@n number} +- f - {@f function} +- s - {@s string} +- c - {@c comment} +- t - {@t tag} + +Syntax (`\@` replace with `@`) + +```md +{\@k keyword} {\@n 255} +``` + +## Rename Header + +```md +# something header {#replace-with-this-id} + +[link to that header](#replace-with-this-id) +``` + +TODO: add bottom "hub" table syntax + diff --git a/public/meta/Style_guidelines.md b/public/meta/Style_guidelines.md @@ -0,0 +1,14 @@ +# Style Guidelines + +This is an article about article style guidelines. + +For now there is at least one: + +```md +# Article Title + +An article must start with a title. +``` + +And filename should be the same as title with exception of spaces being replaced with `_` + diff --git a/public/wiki/AA.md b/public/wiki/AA.md @@ -0,0 +1,100 @@ +# AA (Shift-JIS art) + +TODO + +## Test + +```aa + +โ€ป In the right environment, nothing should be shifted and the columns should line up: +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ใ€€ ใ€€ใ€€| ใ€€ ใ€€ .|๏ผผ|๏ผใ€€|ใ€€ใ€€ใ€€ใ€€ใ€€๏ฝœใ€€ใ€€ .๏ฝœ +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ใ€€ ใ€€ใ€€| โˆงโˆง.|/โŒ’ใƒฝใ€| โˆง๏ผฟโˆง .| โˆงโˆง | +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ใ€€ ใ€€|(,,๏พŸะ”๏พŸ)||,,๏พŸ ฮ˜๏พŸ๏ผ‰|๏ผˆ๏ผ› ยดะ”๏ฝ€๏ผ‰|(=๏พŸฯ‰๏พŸ)| +โ€ป It's probably fine if their legs don't line up, just focus on the columns for this one: +|ใ€€ใ€€ใ€€ โˆง โˆง ใ€€ ใ€€ | ใ€€ใ€€ ใ€€ โˆงโˆง ใ€€ ใ€€ | ใ€€ใ€€ โˆง___โˆงใ€€ใ€€ใ€€โ”‚ใ€€ใ€€ใ€€โˆง๏ผฟโˆงใ€€ใ€€ใ€€ | +|ใ€€ใ€€ใ€€ (*๏พŸใƒผ๏พŸ)ใ€€ใ€€ใ€€|ใ€€ใ€€ใ€€ใ€€(,,๏พŸะ”๏พŸ)ใ€€ใ€€ใ€€|ใ€€ใ€€ ๏ผˆ ยดโˆ€๏ฝ€ ๏ผ‰ใ€€ ใ€€โ”‚ใ€€ใ€€ ๏ผˆใƒปโˆ€ใƒป ,,๏ผ‰ใ€€ใ€€ โ”‚ +|ใ€€ใ€€ ใ€€ Uใ€€ |ใ€€ใ€€ใ€€โ”‚ใ€€ใ€€ ใ€€(iใ€€ใ€€i).ใ€€ ใ€€ |ใ€€ใ€€ ๏ผˆใ€€ใ€€ ใ€€ ๏ผ‰ ใ€€ ใ€€| ใ€€ใ€€ ๏ผˆใ€€ใ€€ใ€€ใ€€๏ผ‰ใ€€ใ€€ โ”‚ +| ใ€€ใ€€๏ฝž|ใ€€ใ€€|ใ€€ใ€€ใ€€โ”‚ใ€€ใ€€ ๏ฝž|ใ€€ใ€€|ใ€€ใ€€ใ€€ | ใ€€ใ€€ iใ€€ใ€€ ใ€€ i ใ€€ ใ€€ |ใ€€ใ€€ใ€€ |ใ€€๏ฝœ ๏ฝœ ใ€€ใ€€ .| +|ใ€€ใ€€ใ€€ใ€€๏ผต ๏ผตใ€€ใ€€ใ€€โ”‚ใ€€ใ€€ใ€€ใ€€ใ—`๏ผช ใ€€ ใ€€โ”‚ใ€€ใ€€๏ผˆ,__,๏พŠ,__,๏ผ‰ ใ€€ ใ€€| ใ€€ใ€€ ๏ผˆ๏ผฟ๏ผˆ_๏ผฟ๏ผ‰ ใ€€ใ€€ | +``` + +```aa +ใ€€ใ€€ใ€€ ,. -๏ฝฐ- ใ€__ +ใ€€ ใ€€,'ใ€€ใ€€ใ€€ใ€€ใ€€'yยด +ใ€€ใ€€ iใ€€๏พš๏พ‰๏พ‰๏พŠ๏พ‰๏พ‰) +ใ€€ใ€€ ๏พŠ๏พ™i ๏พŸ ใƒฎ๏พŸ๏พ‰๏พ˜ +ใ€€ใ€€ ใจ),๏ผ‰โˆžใ€)ใค +ใ€€ใ€€ใ€€,<:::/_:::!ใ€ +ใ€€ใ€€ใ€€๏ฝ€'!_๏พi_๏พ‰ยด +``` + +<div class="side-by-side"> + +<div> + +```aa +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ,---ใ€, --ใ€,---, +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€,'ใ‚-ยดใ€โŒ’,'ยด-ยดใ€_ใ‚ +ใ€€ใ€€ใ€€ใ€€ใ€€/==--ใ€€ใ€€ใ€€ใ€€ ใ€€ใ€€ใƒฝใƒฝ, +ใ€€ใ€€ใ€€ใ€€ ,๏ฝฒ ไบบ_,-i๏พ‰ไบบ๏ฝฒ_-,|_ๅ…ฅใ‚ iใ€€ +ใ€€ใ€€ใ€€ใ€€ใ€€ใƒฝi i.๏ฝฒ[)ใ€€ใ€€ [~)๏ฝฑi ๏ฝฒใƒฝ |ใ€€ใ€€ +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€|ไบบ"ใ€€ใƒผ ใ€€".ไบบi ใ€€|๏พ‰ +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ | |๏ฝ€' -,ใ€€-,ใ‚ค/| |ใ€€(|ใ€€ ,ใ€ +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ๏พš' ๏ผ<๏ผถ>๏ผผ .๏พš'ใ€€ใ€€.//[] +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ,ใƒฝใ‚i ๅ…ฅใ€€/๏ผใƒฝใ€_//ใ€€[]] +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€,ใ_ใ€€L_ฮป__ใƒฝใ€ใ€€ใ€€//ใ€€ใ€€ [] +ใ€€ใ€€ใ€€,โ”€โ”€'_๏ฝฒ'/ /Tใƒฝใ€ใƒฝ,ใƒˆยดใƒŽใ€€ใ€€ []ใ€€[] +ใ€€ใ€€ใ€€|_______,ใ__/_,,|,___ใƒฝ___>ใ€€ใ€€ใ€€ []ใ€€[] +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€๏ฝ€'~๏ฝฒ_ใƒˆ~ใƒฝ_ใ‚~ยด +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ iยด__ใƒŽใ€€ใ€€(__๏ฝ€๏ผ‰ +``` + +<p style="text-wrap-style: balance"><sup><em>The original text art of Reimu in Rinnosuke's blue clothes, which she borrowed in the first two chapters of Touhou Kourindou.</em></sup></p> + +</div> + +<div> + +```aa +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ,---ใ€, --ใ€,---, +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€,'ใ‚-ยดใ€โŒ’,'ยด-ยดใ€_ใ‚ +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€/==--ใ€€ใ€€ใ€€ใ€€ ใ€€ใ€€ใƒฝใƒฝ,ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ,๏ฝฒ ไบบ_,๏ผผi๏พ‰ไบบ๏ผ|_ๅ…ฅใ‚ iใ€€ ใ€ | ,ใ€€ใ€€ +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใƒฝi i.๏ฝฒ[)ใ€€ใ€€ [~)๏ฝฑi ๏ฝฒ.ใƒฝ | โ”€,ใ€€ โ”€ +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€|ไบบ"ใ€€โˆ€ ใ€€".ไบบi ใ€€|๏พ‰ใ€€/ i |๏ฝ€ใ€€ใ€€ +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ | |๏ฝ€' -,ใ€€-,ใ‚ค/| |ใ€€(|ใ€€/ /i +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ๏พš' ๏ผ<๏ผถ>๏ผผ .๏พš'ใ€€ใ€€./ ,๏พ‰.| +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ,ใƒฝใ‚i ๅ…ฅใ€€/๏ผใƒฝใ€_/ ._i / +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€,ใ_ใ€€L_ฮป__ใƒฝใ€ใ€€ใ€€//ใƒฝ/ +. ใ€-------.,โ”€'_๏ฝฒ'/ /Tใƒฝใ€ใƒฝ,ใƒˆยดใƒŽ +ใ€€ใƒฝใ€๏ฝž๏ฝž๏ฝž|๏ฟฃ,ใ__/_,,|,___ใƒฝ___> +ใ€€ใ€€ใ€€๏ฟฃ๏ฟฃ๏ฟฃ ใ€€๏ฝ€'~๏ฝฒ_ใƒˆ~ใƒฝ_ใ‚~ยด +ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ iยด__ใƒŽใ€€ใ€€(__๏ฝ€๏ผ‰ +``` + +<p style="text-wrap-style: balance"><sup><em>The edited text art featuring Reimu wielding two knives, whose head would serve as the basis for Yukkuri Reimu.</em></sup></p> + +</div> + +</div> + +```aa +ใ€€ใ€€ _,,....,,_ใ€€ ๏ผฟไบบไบบไบบไบบไบบไบบไบบไบบไบบไบบไบบไบบไบบไบบไบบ๏ผฟ +-''":::::::::::::๏ฝ€''๏ผžใ€€ใ€€ใ€€ใ‚†ใฃใใ‚Šใ—ใฆใ„ใฃใฆใญ๏ผ๏ผ๏ผใ€€ใ€€ใ€€๏ผœ +ใƒฝ:::::::::::::::::::::๏ฟฃ^๏ผน^๏ผน^๏ผน^๏ผน^๏ผน^๏ผน^๏ผน^๏ผน^๏ผน^๏ผน^๏ผน^๏ผน^๏ผน^๏ผน^๏ฟฃ +ใ€€|::::::;ใƒŽยด๏ฟฃ๏ผผ:::::::::::๏ผผ_,. -โ€๏ฝงใ€€ใ€€ใ€€ใ€€ใ€€๏ผฟ_ใ€€ใ€€ _____ใ€€ใ€€ ๏ผฟ_____ +ใ€€|::::๏พ‰ใ€€ใ€€ใ€€ใƒฝ๏ฝคใƒฝr-r'"ยดใ€€ใ€€๏ผˆ.__ใ€€ใ€€ใ€€ใ€€,ยดใ€€_,, '-ยด๏ฟฃ๏ฟฃ๏ฝ€-ใ‚ ใ€_ ใ‚คใ€ +_,.!ใ‚ค_ใ€€ใ€€_,.๏พ๏ฝฐ๏ฝง'ไบŒ๏พŠไบŒใƒฝ๏ฝคใธ,_7ใ€€ใ€€ใ€€'r ยดใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ใƒฝใ€๏พใ€ +::::::r๏ฝฐ''7๏ฝบ-โ€'"ยดใ€€ ใ€€ ;ใ€€ ',ใ€€๏ฝ€ใƒฝ/๏ฝ€7ใ€€,'๏ผ=โ”€-ใ€€ใ€€ใ€€ ใ€€ -โ”€=๏ผ',ใ€€i +r-'๏ฝง'"ยด/ใ€€ /!ใ€€๏พŠ ใ€€ใƒใ€€ !ใ€€ใ€€iใƒพ_๏พ‰ใ€€iใ€€๏ฝฒใ€€iใ‚ใ€๏ฝฒไบบใƒฌ๏ผ_ใƒซใƒฝ๏ฝฒ iใ€€| +!ใ‚คยด ,' |ใ€€/__,.!/ใ€€Vใ€€๏ฝค!__๏พŠใ€€ ,'ใ€€,ใ‚ใ€€๏พš๏พ˜๏ฝฒi (๏พ‹_] ใ€€ใ€€ ใ€€๏พ‹_๏พ ).| .|ใ€i .|| +`! ใ€€!/๏พši'ใ€€(๏พ‹_] ใ€€ใ€€ ใ€€๏พ‹_๏พ ๏พš'iใ€€๏พ‰ใ€€ใ€€ใ€€!Y!""ใ€€ ,๏ผฟ__, ใ€€ "" ใ€Œ !๏พ‰ iใ€€| +,'ใ€€ ๏พ‰ ใ€€ !'"ใ€€ ใ€€ ,๏ผฟ__,ใ€€ "' i .๏พš'ใ€€ใ€€ใ€€ใ€€L.',.ใ€€ ใ€€ใƒฝ _๏พใ€€ใ€€ใ€€ใ€€Lใ€ ๏พ‰| .| +ใ€€๏ผˆใ€€ใ€€,๏พŠใ€€ใ€€ใ€€ใ€€ใƒฝ _๏พใ€€ ใ€€ไบบ! ใ€€ใ€€ใ€€ใ€€ | ||ใƒฝใ€ใ€€ใ€€ใ€€ใ€€ใ€€ใ€€ ,๏ฝฒ| ||๏ฝฒ| / +,.๏พ,๏ผ‰๏ฝคใ€€ใ€€๏ผ‰๏ผž,๏ฝค _____,ใ€€,.ใ‚คใ€€ ใƒใ€€ใ€€ใ€€ใ€€ใƒฌ ใƒซ๏ฝ€ ใƒผ--โ”€ ยดใƒซ๏พšใ€€๏พšยด +``` + +|Japan Hub|| +|:-|:-| +|[[Futaba Channel]]|[[AA]] โ‹… [[Nijiura]]| +|[[2ch]]|[[Capcode]]| diff --git a/public/wiki/A_Topic.md b/public/wiki/A_Topic.md diff --git a/public/wiki/BJapan.md b/public/wiki/BJapan.md diff --git a/public/wiki/CNameless_Rumia.md b/public/wiki/CNameless_Rumia.md @@ -1 +0,0 @@ -is a dude diff --git a/public/wiki/Fsome.md b/public/wiki/Fsome.md diff --git a/public/wiki/wiki.md b/public/wiki/wiki.md @@ -1,59 +0,0 @@ -From Wikipedia, the free encyclopedia -For the concept in semiotics, see Hypertext (semiotics). - -Visual abstraction of several documents being connected by hyperlinks - -Information mapping -Topics and fields -Business decision mappingData visualizationGraphic communicationInfographicsInformation designKnowledge visualizationMental modelMorphological analysisOntology (information science)Schema (psychology)Visual analyticsVisual language -Nodeโ€“link approaches -Argument mapCladisticsCognitive mapConcept latticeConcept mapConceptual graphDecision treeDendrogramGraph drawingHyperbolic treeHypertextIssue mapIssue treeLayered graph drawingMind mapObject-role modelingOrganizational chartPathfinder networkRadial treeSemantic networkSociogramTimelineTopic mapTree structureZigZag -See also -Design rationaleDiagrammatic reasoningEntityโ€“relationship modelGeovisualizationList of concept- and mind-mapping softwareOlogOntology (philosophy)Problem structuring methodsSemantic WebTreemappingWicked problem -vte - -Engineer Vannevar Bush wrote "As We May Think" in July of 1945 in which he described the Memex, a theoretical proto-hypertext device which in turn helped inspire the subsequent invention of hypertext. - -Douglas Engelbart in 2009, at the 40th anniversary celebrations of "The Mother of All Demos" in San Francisco, a 90-minute 1968 presentation of the NLS computer system which was a combination of hardware and software that demonstrated many hypertext ideas -Hypertext is text displayed on a computer display or other electronic devices with references (hyperlinks) to other text that the reader can immediately access.[1] Hypertext documents are interconnected by hyperlinks, which are typically activated by a mouse click, keypress set, or screen touch. Apart from text, the term "hypertext" is also sometimes used to describe tables, images, and other presentational materials with integrated hyperlinks. Hypertext is one of the key underlying concepts of the World Wide Web,[2] where Web pages are often written in the Hypertext Markup Language (HTML). As implemented on the Web, hypertext enables the easy-to-use publication of information over the Internet. - -Etymology[edit] -"(...)'Hypertext' is a recent coinage. 'Hyper-' is used in the mathematical sense of extension and generality (as in 'hyperspace,' 'hypercube') rather than the medical sense of 'excessive' ('hyperactivity'). There is no implication about sizeโ€” a hypertext could contain only 500 words or so. 'Hyper-' refers to structure and not size." - -โ€”โ€ŠTheodor H. Nelson, Brief Words on the Hypertext, 23 January 1967 -The English prefix "hyper-" comes from the Greek prefix "แฝ‘ฯ€ฮตฯ-" and means "over" or "beyond"; it has a common origin with the prefix "super-" which comes from Latin. It signifies the overcoming of the previous linear constraints of written text. - -The term "hypertext" is often used where the term "hypermedia" might seem appropriate. - -In 1992, author Ted Nelsonย โ€“ who coined both terms in 1963ย [3][4]โ€“ wrote: - -By now the word "hypertext" has become generally accepted for branching and responding text, but the corresponding word "hypermedia", meaning complexes of branching and responding graphics, movies and soundย โ€“ as well as textย โ€“ is much less used. Instead they use the strange term "interactive multimedia": this is four syllables longer, and does not express the idea of extending hypertext. - -โ€”โ€ŠNelson, Literary Machines, 1992 -Types and uses of hypertext[edit] -Hypertext documents can either be static (prepared and stored in advance) or dynamic (continually changing in response to user input, such as dynamic web pages). Static hypertext can be used to cross-reference collections of data in documents, software applications, or books on CDs. A well-constructed system can also incorporate other user-interface conventions, such as menus and command lines. Links used in a hypertext document usually replace the current piece of hypertext with the destination document. A lesser known feature is StretchText, which expands or contracts the content in place, thereby giving more control to the reader in determining the level of detail of the displayed document. Some implementations support transclusion, where text or other content is included by reference and automatically rendered in place. - -Hypertext can be used to support very complex and dynamic systems of linking and cross-referencing. The most famous implementation of hypertext is the World Wide Web, written in the final months of 1990 and released on the Internet in 1991. - -History[edit] -Main articles: History of hypertext and Timeline of hypertext technology -See also: National Physical Laboratory (United Kingdom) ยงย Scrapbook -Part of a series on -Anthropology of nature, -science, and technology -show -Basic concepts -show -Major theorists -hide -Related articles -Capitalist Realism (2009)Cultural ecologyCybernetic Culture Research Unit (CCRU)CybertextCyborg anthropologyDigital anthropologyEcological anthropologyEnvironmental anthropologyFanged Noumena (2011)Hari KunzruHypermediaHypertextHypertext fictionLiterary Machines (1981)Political ecologyRave cultureScience, technology and society -Social and cultural anthropology -vte -In 1941, Jorge Luis Borges published "The Garden of Forking Paths", a short story that is often considered an inspiration for the concept of hypertext.[5] - -In 1945, Vannevar Bush wrote an article in The Atlantic Monthly called "As We May Think", about a futuristic proto-hypertext device he called a Memex. A Memex would hypothetically store โ€” and record โ€” content on reels of microfilm, using electric photocells to read coded symbols recorded next to individual microfilm frames while the reels spun at high speed, and stopping on command. The coded symbols would enable the Memex to index, search, and link content to create and follow associative trails. Because the Memex was never implemented and could only link content in a relatively crude fashion โ€” by creating chains of entire microfilm frames โ€” the Memex is regarded only as a proto-hypertext device, but it is fundamental to the history of hypertext because it directly inspired the invention of hypertext by Ted Nelson and Douglas Engelbart. - - -Ted Nelson gives a presentation on Project Xanadu, a theoretical hypertext model conceived in the 1960s whose first and incomplete implementation was first published in 1998.[6] -In 1965, Ted Nelson coined the terms 'hypertext' and 'hypermedia' as part of a model he developed for creating and using linked content (first published reference 1965).[7] He later worked with Andries van Dam to develop the Hypertext Editing System (text editing) in 1967 at Brown University. It was implemented using the terminal IBM 2250 with a light pen which was provided as a pointing device.[8] By 1976, its successor FRESS was used in a poetry class in which students could browse a hyperlinked set of poems and discussion by experts, faculty and other students, in what was arguably the world's first online scholarly community[9] which van Dam says "foreshadowed wikis, blogs and communal documents of all kinds".[10] Ted Nelson said in the 1960s that he began implementation of a hypertext system he theorized, which was named Project Xanadu, but his first and incomplete public release was finished much later, in 1998.[6] During this period, Nelson also proposed using Vladimir Nabokovโ€™s 1962 novel Pale Fire as part of a demonstration to IBM, intending to show how hypertext could support complex, non-linear forms of literary analysis. The novel, structured as a long poem with an extensive, self-referential commentary and index, embodied the principles of associative linking and user-directed navigation that Nelson believed defined hypertext.[11] Its layered design enabled readers to follow multiple interpretive paths through the text, resembling the branching structures later implemented in digital hypertext systems. However, IBM chose a more technically conventional presentation, and the literary demonstration was never realized.[12]