내용으로 건너뛰기
잡개발자 리토의 잡위키
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
미디어 관리자
사이트맵
로그인
>
미디어 관리자
사이트맵
기술문서:오픈소스:dokuwiki
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
{{htmlmetatags> metatag-description=(도쿠위키, DokuWiki, 위키, Wiki, 플러그인, Plugin, 커스터마이징, Customizing, 오픈 소스, Open Source) metatag-og:description=(도쿠위키, DokuWiki, 위키, Wiki, 플러그인, Plugin, 커스터마이징, Customizing, 오픈 소스, Open Source) }} ====== DokuWiki ====== <note tip> 본 문서는 2020-07-29a "Hogfather" ((https://download.dokuwiki.org/src/dokuwiki/dokuwiki-2020-07-29a.tgz)) 버전을 기준으로 작성되었습니다.\\ - [[#사용법]]\\ - [[#플러그인]]\\ - [[#커스터마이징]]\\ - [[#관리]] </note> ===== 사용법 ===== * DokuWiki 설정: https://www.dokuwiki.org/config * DokuWiki 확장기능: https://www.dokuwiki.org/extensions * 이름공간: https://www.dokuwiki.org/namespaces * 포맷팅 문법: https://www.dokuwiki.org/syntax ===== 플러그인 ===== * Plugins: https://www.dokuwiki.org/plugins * IndexMenu Plugin: https://www.dokuwiki.org/plugin:indexmenu * Themes: https://www.dokuwiki.org/plugin:indexmenu:themes * Move Plugin: https://www.dokuwiki.org/plugin:move * color Plugin: https://www.dokuwiki.org/plugin:color * Ruby Plugin: https://www.dokuwiki.org/plugin:ruby * keyboard Plugin: https://www.dokuwiki.org/plugin:keyboard * sortablejs Plugin: https://www.dokuwiki.org/plugin:sortablejs * <color gray><del>Table Width Plugin: https://www.dokuwiki.org/plugin:tablewidth</del></color> * Note Plugin: https://www.dokuwiki.org/plugin:note * <color gray><del>Wrap Plugin: https://www.dokuwiki.org/plugin:wrap</del></color> * SyntaxHighlighter4 Plugin ((2글자만 존재하는 경우 사라지는 버그 있음)): https://www.dokuwiki.org/plugin:syntaxhighlighter4 * Video Share Plugin: https://www.dokuwiki.org/plugin:vshare * iframe Plugin: https://www.dokuwiki.org/plugin:iframe * PlantUML Parser Plugin: https://www.dokuwiki.org/plugin:plantumlparser * MindMap: https://plantuml.com/ko/mindmap-diagram * HtmlMetaTags Plugin: https://www.dokuwiki.org/plugin:htmlmetatags * Tag Plugin: https://www.dokuwiki.org/plugin:tag * Discussion Plugin: https://www.dokuwiki.org/plugin:discussion * PageList Plugin: https://www.dokuwiki.org/plugin:pagelist * DW2PDF Plugin: https://www.dokuwiki.org/plugin:dw2pdf * IP Banning Plugin: https://www.dokuwiki.org/plugin:ipban * Login/Logoff Logging Plugin ((로그 경로: /data/cache/loglog.log)): https://www.dokuwiki.org/plugin:loglog ===== 커스터마이징 ===== ==== 페이지 삭제 ==== * data/pages/playground * data/pages/wiki ==== 기본 템플릿 ==== === 이미지 교체 === * lib/tpl/dokuwiki/images/apple-touch-icon.png * lib/tpl/dokuwiki/images/logo.png * lib/tpl/dokuwiki/images/favicon.ico === logo 대체 텍스트 === <sxh php; gutter: true; first-line: 20; highlight: [28]; title: lib/tpl/dokuwiki/tpl_header.php;> <h1><?php // get logo either out of the template images folder or data/media folder $logoSize = array(); $logo = tpl_getMediaFile(array(':wiki:logo.png', ':logo.png', 'images/logo.png'), false, $logoSize); // display logo and wiki title in a link to the home page tpl_link( wl(), '<img src="'.$logo.'" '.$logoSize[3].' alt="'.$conf['title'].'" /> <span>'.$conf['title'].'</span>', 'accesskey="h" title="[H]"' ); ?></h1> </sxh> === footer 숨김 === <sxh php; gutter: true; first-line: 11; highlight: [11, 31]; title: lib/tpl/dokuwiki/tpl_footer.php;> <!--<div id="dokuwiki__footer"><div class="pad"> <?php tpl_license(''); // license text ?> <div class="buttons"> <?php tpl_license('button', true, false, false); // license button, no wrapper $target = ($conf['target']['extern']) ? 'target="'.$conf['target']['extern'].'"' : ''; ?> <a href="https://www.dokuwiki.org/donate" title="Donate" <?php echo $target?>><img src="<?php echo tpl_basedir(); ?>images/button-donate.gif" width="80" height="15" alt="Donate" /></a> <a href="https://php.net" title="Powered by PHP" <?php echo $target?>><img src="<?php echo tpl_basedir(); ?>images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a> <a href="//validator.w3.org/check/referer" title="Valid HTML5" <?php echo $target?>><img src="<?php echo tpl_basedir(); ?>images/button-html5.png" width="80" height="15" alt="Valid HTML5" /></a> <a href="//jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS" <?php echo $target?>><img src="<?php echo tpl_basedir(); ?>images/button-css.png" width="80" height="15" alt="Valid CSS" /></a> <a href="https://dokuwiki.org/" title="Driven by DokuWiki" <?php echo $target?>><img src="<?php echo tpl_basedir(); ?>images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a> </div> </div></div>--><!-- /footer --> </sxh> === 문서 정보 제거 === <sxh php; gutter: true; first-line: 49; highlight: [63]; title: lib/tpl/dokuwiki/main.php;> <div id="dokuwiki__content"><div class="pad group"> <?php html_msgarea() ?> <div class="pageId"><span><?php echo hsc($ID) ?></span></div> <div class="page group"> <?php tpl_flush() ?> <?php tpl_includeFile('pageheader.html') ?> <!-- wikipage start --> <?php tpl_content() ?> <!-- wikipage stop --> <?php tpl_includeFile('pagefooter.html') ?> </div> <div class="docInfo"><?php /*tpl_pageinfo()*/ ?></div> <?php tpl_flush() ?> </div></div><!-- /content --> </sxh> === 하단 여백 제거 === <sxh css; gutter: true; first-line: 321; highlight: [322]; title: lib/tpl/dokuwiki/css/design.less;> .dokuwiki .wrapper { /*margin-bottom: 1.4em;*/ } </sxh> === 테이블 오버 효과 제거 === <sxh css; gutter: true; first-line: 101; highlight: [102, 106]; title: lib/tpl/dokuwiki/css/content.less;> .dokuwiki table.inline tr:hover td { /*background-color: @ini_background_alt;*/ } .dokuwiki table.inline tr:hover th { /*background-color: @ini_border;*/ } </sxh> === 테이블 줄 바꿈 제거 === <sxh css; gutter: true; first-line: 397; highlight: [397-399]; title: lib/tpl/dokuwiki/css/content.less;> .dokuwiki div.table[class*="sectionedit"] { white-space: nowrap !important; } </sxh> === 테이블 정중앙 정렬 === <sxh css; gutter: true; first-line: 401; highlight: [401-403]; title: lib/tpl/dokuwiki/css/content.less;> .dokuwiki div.table[class*="sectionedit"] table :is(th, td).centeralign { vertical-align: middle !important; } </sxh> ==== 문서 편집 설명 제거 ==== <sxh; gutter: true; highlight: [1]; title: inc/lang/ko/edit.txt;> </sxh> ==== 문서 편집 에디터 수정 ==== <sxh javascript; gutter: true; first-line: 40; highlight: [48]; title: lib/scripts/editor.js;> initSizeCtl: function(ctlarea,editor){ var $ctl = jQuery(ctlarea), $textarea = jQuery(editor); if($ctl.length === 0 || $textarea.length === 0) { return; } $textarea.css('height', DokuCookie.getValue('sizeCtl') || '400px'); var wrp = DokuCookie.getValue('wrapCtl'); if(wrp){ dw_editor.setWrap($textarea[0], wrp); } // else use default value jQuery.each([ ['larger', function(){dw_editor.sizeCtl(editor,100);}], ['smaller', function(){dw_editor.sizeCtl(editor,-100);}], ['wrap', function(){dw_editor.toggleWrap(editor);}] ], function (_, img) { jQuery(document.createElement('img')) .attr('src', DOKU_BASE+'lib/images/' + img[0] + '.gif') .attr('alt', '') .on('click', img[1]) .appendTo($ctl); }); }, </sxh> ==== 자동 약어 힌트 비활성화 ==== <sxh; gutter: true; first-line: 3; highlight: [3-62]; title: conf/acronyms.conf;> #ACL Access Control List #AFAICS As far as I can see #AFAIK As far as I know #AFAIR As far as I remember #API Application Programming Interface #ASAP As soon as possible #ASCII American Standard Code for Information Interchange #BTW By the way #CMS Content Management System #CSS Cascading Style Sheets #DNS Domain Name System #EOF End of file #EOL End of line #EOM End of message #EOT End of text #FAQ Frequently Asked Questions #FTP File Transfer Protocol #FOSS Free & Open-Source Software #FLOSS Free/Libre and Open Source Software #FUD Fear, Uncertainty, and Doubt #FYI For your information #GB Gigabyte #GHz Gigahertz #GPL GNU General Public License #GUI Graphical User Interface #HTML HyperText Markup Language #IANAL I am not a lawyer (but) #IE Internet Explorer #IIRC If I remember correctly #IMHO In my humble opinion #IMO In my opinion #IOW In other words #IRC Internet Relay Chat #IRL In real life #KISS Keep it simple stupid #LAN Local Area Network #LGPL GNU Lesser General Public License #LOL Laughing out loud #MathML Mathematical Markup Language #MB Megabyte #MHz Megahertz #MSIE Microsoft Internet Explorer #OMG Oh my God #OS Operating System #OSS Open Source Software #OTOH On the other hand #PITA Pain in the Ass #RFC Request for Comments #ROTFL Rolling on the floor laughing #RTFM Read The Fine Manual #spec specification #TIA Thanks in advance #TL;DR Too long; didn't read #TOC Table of Contents #URI Uniform Resource Identifier #URL Uniform Resource Locator #W3C World Wide Web Consortium #WTF? What the f*** #WYSIWYG What You See Is What You Get #YMMV Your mileage may vary </sxh> ==== 자동 변환 문자열 비활성화 ==== <sxh; gutter: true; first-line: 8; highlight: [8-21]; title: conf/entities.conf;> #<-> ↔ #-> → #<- ← #<=> ⇔ #=> ⇒ #<= ⇐ #>> » #<< « #--- — #-- – #(c) © #(tm) ™ #(r) ® #... … </sxh> ==== Interwiki 설정 ==== <sxh; gutter: true; first-line: 44; highlight: [44-48]; title: conf/interwiki.conf;> # Custom links instagram https://www.instagram.com/{NAME}/ threads https://www.threads.com/{NAME} namu https://namu.wiki/w/{NAME} ue https://unicode-explorer.com/{NAME} </sxh> ((이미지 경로: /lib/images/interwiki)) ==== favicon 설정 ==== * apple-touch-icon.png * favicon-96x96.png * favicon.ico * favicon.svg <sxh php; gutter: true; first-line: 1789; highlight: [1793-1815]; title: inc/template.php;> function tpl_favicon($types = array('favicon')) { $return = ''; /* foreach($types as $type) { switch($type) { case 'favicon': $look = array(':wiki:favicon.ico', ':favicon.ico', 'images/favicon.ico'); $return .= '<link rel="shortcut icon" href="'.tpl_getMediaFile($look).'" />'.NL; break; case 'mobile': $look = array(':wiki:apple-touch-icon.png', ':apple-touch-icon.png', 'images/apple-touch-icon.png'); $return .= '<link rel="apple-touch-icon" href="'.tpl_getMediaFile($look).'" />'.NL; break; case 'generic': // ideal world solution, which doesn't work in any browser yet $look = array(':wiki:favicon.svg', ':favicon.svg', 'images/favicon.svg'); $return .= '<link rel="icon" href="'.tpl_getMediaFile($look).'" type="image/svg+xml" />'.NL; break; } } */ $return .= '<link rel="icon" type="image/png" href="https://wiki.jobdeveloper.co.kr/favicon-96x96.png" sizes="96x96" />'.NL; $return .= '<link rel="icon" type="image/svg+xml" href="https://wiki.jobdeveloper.co.kr/favicon.svg" />'.NL; $return .= '<link rel="shortcut icon" href="https://wiki.jobdeveloper.co.kr/favicon.ico" />'.NL; $return .= '<link rel="apple-touch-icon" sizes="180x180" href="https://wiki.jobdeveloper.co.kr/apple-touch-icon.png" />'.NL; return $return; } </sxh> ==== manifest 설정 ==== * web-app-manifest-192x192.png * web-app-manifest-512x512.png <sxh; gutter: true; highlight: [1-22]; title: site.webmanifest;> { "name": "잡개발자 리토의 잡위키", "short_name": "잡개발자", "icons": [ { "src": "/web-app-manifest-192x192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" }, { "src": "/web-app-manifest-512x512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" } ], "theme_color": "#333333", "background_color": "#333333", "display": "standalone", "start_url": "/" } </sxh> <sxh php; gutter: true; first-line: 250; highlight: [251]; title: inc/template.php;> if (actionOK('manifest')) { $head['link'][] = array('rel'=> 'manifest', 'href'=> DOKU_BASE.'site.webmanifest'); } </sxh> ==== start 문서 index,follow 설정 ==== <sxh php; gutter: true; first-line: 305; highlight: [308]; title: inc/template.php;> if(($ACT == 'show' || $ACT == 'export_xhtml') && !$REV) { if($INFO['exists']) { //delay indexing: if((time() - $INFO['lastmod']) >= $conf['indexdelay'] && ($ID === $conf['start'] || !isHiddenPage($ID))) { $head['meta'][] = array('name'=> 'robots', 'content'=> 'index,follow'); } else { $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,nofollow'); } $canonicalUrl = wl($ID, '', true, '&'); if ($ID == $conf['start']) { $canonicalUrl = DOKU_URL; } $head['link'][] = array('rel'=> 'canonical', 'href'=> $canonicalUrl); } else { $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,follow'); } } elseif(defined('DOKU_MEDIADETAIL')) { $head['meta'][] = array('name'=> 'robots', 'content'=> 'index,follow'); } else { $head['meta'][] = array('name'=> 'robots', 'content'=> 'noindex,nofollow'); } </sxh> ==== 사이트맵 한글 정렬 개선 ==== <sxh php; gutter: true; first-line: 48; highlight: [52, 54]; title: inc/search.php;> if (!empty($sort)) { if ($sort == 'date') { @array_multisort(array_map('filemtime', $filepaths), SORT_NUMERIC, SORT_DESC, $files); } else /* natural */ { asort($files); } asort($dirs); } </sxh> ==== 검색어 하이라이트 개선 ==== <sxh php; gutter: true; first-line: 276; highlight: [308]; title: inc/html.php;> function html_show($txt=null){ global $ID; global $REV; global $HIGH; global $INFO; global $DATE_AT; //disable section editing for old revisions or in preview if($txt || $REV){ $secedit = false; }else{ $secedit = true; } if (!is_null($txt)){ //PreviewHeader echo '<br id="scroll__here" />'; echo p_locale_xhtml('preview'); echo '<div class="preview"><div class="pad">'; $html = html_secedit(p_render('xhtml',p_get_instructions($txt),$info),$secedit); if($INFO['prependTOC']) $html = tpl_toc(true).$html; echo $html; echo '<div class="clearer"></div>'; echo '</div></div>'; }else{ if ($REV||$DATE_AT){ $data = array('rev' => &$REV, 'date_at' => &$DATE_AT); Event::createAndTrigger('HTML_SHOWREV_OUTPUT', $data, 'html_showrev'); } $html = p_wiki_xhtml($ID,$REV,true,$DATE_AT); $html = html_secedit($html,$secedit); if($INFO['prependTOC']) $html = tpl_toc(true).$html; //$html = html_hilight($html,$HIGH); echo $html; } } </sxh> <sxh javascript; gutter: true; highlight: [1-78]; title: conf/userscript.js;> jQuery(function() { // 검색어 파라미터 var phrases = []; var search = window.location.search; if (search) { var params = search.substring(1).split('&'); for (var i = 0; i < params.length; i++) { var pair = params[i].split('='); var key = decodeURIComponent(pair[0]); if (key === 's[]' && pair[1]) { var value = decodeURIComponent(pair[1].replace(/\+/g, ' ')); phrases.push(value); } } } if (phrases.length === 0) return; // 검색어 정규식 var escaped = []; for (var j = 0; j < phrases.length; j++) { escaped.push(phrases[j].replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')); } var regex = new RegExp('(' + escaped.join('|') + ')', 'gi'); // 제외 리스트 var exclude_list = [ 'div.syntaxhighlighter' // SyntaxHighlighter4 Plugin , '[id^="plant-uml-diagram-"]' // PlantUML Parser Plugin , 'div.tags span a' // Tag Plugin ]; var exclude_selector = exclude_list.join(', '); // 허용 리스트 var allow_list = [ 'br', 'wbr' , 'header', 'footer' , 'main', 'section', 'article', 'aside' , 'nav', 'address' , 'div', 'p', 'span' , 'hgroup', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' , 'ul', 'ol', 'li', 'dl', 'dt', 'dd' , 'menu', 'label', 'hr' , 'table', 'thead', 'tbody', 'tfoot', 'th', 'tr', 'td', 'caption' , 'a', 'b', 'i', 'q', 's', 'u' , 'blockquote', 'figure', 'figcaption', 'details', 'summary' , 'abbr', 'cite', 'code', 'data', 'del', 'dfn', 'em', 'ins', 'kbd', 'mark', 'samp', 'small', 'strong', 'sub', 'sup', 'time', 'var' , 'ruby', 'rp', 'rt', 'bdo', 'bdi' , 'acronym', 'big', 'center', 'dir', 'font', 'marquee', 'nobr', 'plaintext', 'rb', 'rbc', 'rtc', 'selectedcontent', 'strike', 'tt', 'xmp' ]; // 하이라이트 함수 function html_hilight($node) { $node.contents().each(function() { var node = this; if (node.nodeType === 3) { var txt = node.nodeValue; if (regex.test(txt)) { regex.lastIndex = 0; jQuery(node).replaceWith(txt.replace(regex, '<span class="search_hit">$1</span>')); } } else if (node.nodeType === 1) { var $this = jQuery(node); if (!$this.is(exclude_selector)) { var tag = node.tagName.toLowerCase(); if (allow_list.indexOf(tag) !== -1) { html_hilight($this); } } } }); } // 하이라이트 함수 실행 var $target = jQuery("div.page.group"); if ($target.length > 0) { html_hilight($target); } }); </sxh> ==== SEO 개선 ==== * logo.png <sxh html; gutter: true; highlight: [1-44]; title: conf/meta.html;> <!-- Open Graph --> <meta property="og:type" content="website" /> <meta property="og:site_name" content="잡개발자 리토의 잡위키" /> <meta property="og:url" content="https://wiki.jobdeveloper.co.kr/" /> <meta property="og:image" content="https://wiki.jobdeveloper.co.kr/logo.png" /> <!-- //Open Graph --> <!-- JSON-LD --> <script type="application/ld+json"> { "@context": "https://schema.org", "@graph": [ { "@type": "Organization", "@id": "https://wiki.jobdeveloper.co.kr/#organization", "name": "잡개발자 리토의 잡위키", "url": "https://wiki.jobdeveloper.co.kr/", "logo": { "@type": "ImageObject", "url": "https://wiki.jobdeveloper.co.kr/logo.png" }, "image": { "@type": "ImageObject", "url": "https://wiki.jobdeveloper.co.kr/logo.png" } }, { "@type": "WebSite", "@id": "https://wiki.jobdeveloper.co.kr/#website", "name": "잡개발자 리토의 잡위키", "url": "https://wiki.jobdeveloper.co.kr/", "publisher": { "@id": "https://wiki.jobdeveloper.co.kr/#organization" }, "potentialAction": { "@type": "SearchAction", "target": "https://wiki.jobdeveloper.co.kr/doku.php?do=search&q={search_term_string}", "query-input": "required name=search_term_string" } } ] } </script> <!-- //JSON-LD --> </sxh> <sxh; gutter: true; highlight: [1-4]; title: robots.txt;> User-agent: * Allow: / Sitemap: https://wiki.jobdeveloper.co.kr/doku.php?do=sitemap </sxh> <sxh php; gutter: true; first-line: 229; highlight: [229-231]; title: inc/template.php;> // 수정일 메타 데이터 $head['meta'][] = array('name'=> 'revised', 'content'=> date_iso8601($INFO['lastmod'])); $head['meta'][] = array('property'=> 'article:modified_time', 'content'=> date_iso8601($INFO['lastmod'])); </sxh> <sxh php; gutter: true; first-line: 980; highlight: [983-987]; title: inc/template.php;> default : // SHOW and anything else not included $page_title = $name; // 이름공간 정보 표기 global $INFO; if (!empty($INFO['namespace'])) { $page_title .= ' | ' . str_replace(':', ' > ', $INFO['namespace']); } </sxh> ==== 카카오애드핏 ==== <sxh html; gutter: true; first-line: 46; highlight: [46-77]; title: conf/meta.html;> <!-- 카카오애드핏 --> <style> .ad-adfit-pc { display: none; } .ad-adfit-mobile { display: none; } @media screen and (min-width: 801px) { .ad-adfit-pc { display: block; } .ad-adfit-mobile { display: none; } } @media screen and (max-width: 800px) { .ad-adfit-pc { display: none; } .ad-adfit-mobile { display: block; } } </style> <script type="text/javascript" src="//t1.daumcdn.net/kas/static/ba.min.js" async></script> <!-- //카카오애드핏 --> </sxh> <sxh html; gutter: true; highlight: [1-8]; title: conf/pageheader.html;> <!-- 카카오애드핏 --> <div class="ad-adfit-mobile"> <ins class="kakao_ad_area" style="display:none;" data-ad-unit = "DAN-uCoX3Nv9fPaiC2mH" data-ad-width = "320" data-ad-height = "100"></ins> </div> <!-- //카카오애드핏 --> </sxh> <sxh html; gutter: true; highlight: [1-14]; title: conf/pagefooter.html;> <!-- 카카오애드핏 --> <div class="ad-adfit-pc" style="margin-top:6px;"> <ins class="kakao_ad_area" style="display:none;" data-ad-unit = "DAN-n9YTFT0FiNdcCyWi" data-ad-width = "728" data-ad-height = "90"></ins> </div> <div class="ad-adfit-mobile" style="margin-top:8px;"> <ins class="kakao_ad_area" style="display:none;" data-ad-unit = "DAN-zlwD249GnskVdX8E" data-ad-width = "320" data-ad-height = "100"></ins> </div> <!-- //카카오애드핏 --> </sxh> <sxh html; gutter: true; highlight: [1-8]; title: conf/sidebarfooter.html;> <!-- 카카오애드핏 --> <div class="ad-adfit-pc" style="margin-top:5px;margin-left:5px;"> <ins class="kakao_ad_area" style="display:none;" data-ad-unit = "DAN-GhlkefQp1GdcfmSS" data-ad-width = "160" data-ad-height = "600"></ins> </div> <!-- //카카오애드핏 --> </sxh> ==== 추적 코드 ==== <sxh html; gutter: true; first-line: 79; highlight: [79-96]; title: conf/meta.html;> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-CYCM0MXQLG"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-CYCM0MXQLG'); </script> <!-- Clarity tracking code --> <script type="text/javascript"> (function(c,l,a,r,i,t,y){ c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); })(window, document, "clarity", "script", "tfjwj8ecxc"); </script> </sxh> ==== 플러그인 ==== === IndexMenu Plugin === <code> {{indexmenu>:#1|js#simple navbar nomenu notoc}} </code> ((/doku.php?id=sidebar 또는 /doku.php/sidebar)) === Note Plugin === <sxh css; gutter: true; highlight: [3]; title: lib/plugins/note/style.css;> .plugin_note { margin: 2em auto; max-width: 90%; min-height: 40px; text-align: justify; vertical-align: middle; border-collapse: collapse; padding: 15px 20px 15px 80px; background-position: 20px 50%; background-repeat: no-repeat; -moz-border-radius: 20px; -khtml-border-radius: 20px; border-radius: 20px; color: black; overflow: hidden; } </sxh> === PlantUML Parser Plugin === <sxh css; gutter: true; highlight: [1-3]; title: lib/plugins/plantumlparser/style.css;> [id^="plant-uml-diagram-"] { overflow: auto; } </sxh> <sxh php; gutter: true; first-line: 92; highlight: [99-100]; title: lib/plugins/plantumlparser/syntax/injector.php;> if($data['include_links'] == "1") { $renderer->doc .= "<div id=\"plantumlparse_link_section\">"; /* $renderer->doc .= "<a target='_blank' href='".$data['url']['svg']."'>SVG</a> | "; $renderer->doc .= "<a target='_blank' href='".$data['url']['png']."'>PNG</a> | "; $renderer->doc .= "<a target='_blank' href='".$data['url']['txt']."'>TXT</a>"; */ $renderer->doc .= "<a target='_blank' href='".$data['url']['svg']."'>SVG</a> | "; $renderer->doc .= "<a target='_blank' href='".$data['url']['png']."'>PNG</a>"; $renderer->doc .= "</div>"; } </sxh> === Tag Plugin === <sxh css; gutter: true; first-line: 7; highlight: [8, 10, 14-16, 19-26]; title: lib/plugins/tag/style.css;> .dokuwiki div.tags { /*border-top: 2px dotted __border__;*/ clear: both; /*margin-bottom: 1.4em;*/ } .dokuwiki div.tagstop { /*border-bottom: 2px dotted __border__; margin-top: -1.3em; margin-bottom: .4em;*/ } .dokuwiki div.tags span a, .dokuwiki div.tagstop span a { color: #2962ff; background-color: #e3f2fd; padding: 4px 4px; border-radius: 4px; margin-left: 1px; } </sxh> <sxh php; gutter: true; first-line: 162; highlight: [171]; title: lib/plugins/tag/helper.php;> public function tagLinks($tags) { if (empty($tags) || ($tags[0] == '')) { return ''; } $links = array(); foreach ($tags as $tag) { $links[] = $this->tagLink($tag); } return implode(''.DOKU_LF.DOKU_TAB, $links); } </sxh> ===== 관리 ===== ==== 템플릿 스타일 설정 ==== <sxh; gutter: true; first-line: 18; highlight: [18, 22]; title: conf/tpl/dokuwiki/style.ini;> __site_width__ = "1330px" __sidebar_width__ = "16em" __tablet_width__ = "800px" __phone_width__ = "480px" __theme_color__ = "#333333" </sxh> (( 최소 해상도 1366px 기준 (스크롤바 제외 1330px) )) ==== 환경 설정 > 보이기 ==== === 이동 경로 추적 비활성화 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['breadcrumbs'] = 0; </sxh> === 타이포그래피 대체 비활성화 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['typography'] = '0'; </sxh> === 목차의 최대 단계 비활성화 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['maxtoclevel'] = '0'; </sxh> === 문단의 최대 편집 단계 비활성화 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['maxseclevel'] = '0'; </sxh> === 문서 이름을 첫 문단 제목으로 사용 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['useheading'] = '1'; </sxh> === 이름공간 읽기 권한 설정 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['sneaky_index'] = 1; </sxh> === 문서 숨기기 설정 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['hidepages'] = '(start|sidebar)'; </sxh> ==== 환경 설정 > 인증 ==== === 접근 제어 목록 (ACL) 사용 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['useacl'] = 1; </sxh> === 슈퍼유저 설정 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['superuser'] = '@admin'; </sxh> === 도쿠위키 동작 비활성화 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['disableactions'] = 'backlink,recent,register'; </sxh> ==== 환경 설정 > 스팸 방지 ==== === 색인 전 지연 시간 (초) === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['indexdelay'] = 0; </sxh> ==== 환경 설정 > 링크 ==== === 링크에 대한 타겟 창 === <sxh php; gutter: false; highlight: [1-2]; title: conf/local.php;> $conf['target']['interwiki'] = '_blank'; $conf['target']['extern'] = '_blank'; </sxh> ==== 환경 설정 > 신디케이션 (RSS) ==== === 사이트맵 생성 날짜 빈도 (일) === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['sitemap'] = 1; </sxh> ==== 환경 설정 > 고급 ==== === 업데이트와 보안 경고 비활성화 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['updatecheck'] = 0; </sxh> === 멋진 URL 사용 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['userewrite'] = '2'; </sxh> === 존재하지 않는 문서 404 상태 코드 반환 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['send404'] = 1; </sxh> ==== 환경 설정 > Feature Flags ==== === defer_js 비활성화 === <sxh php; gutter: false; highlight: [1]; title: conf/local.php;> $conf['defer_js'] = 0; </sxh> ((Indexmenu Plugin: If you use the 'js'-option of the indexmenu plugin, you have to disable the 'defer_js'-setting. This setting is temporary, in the future the indexmenu plugin will be improved.)) {{tag>"도쿠위키" "DokuWiki"}}
문서 도구
문서 보기
이전 판
맨 위로