위키에서 C소스나 HTML소스를 vim처럼 보이게 하려면 어떻게 하

icristi의 이미지

KLDP Wiki에 가보면 C소스나 HTML 소스는
vim에서 보이는 것처럼 컬러풀하게 나오던데,
위키에 어떤 엔진을 따로 깔아줘야 하나요?

이런 내용들이 좀 자세히 나와있는 곳은 없나요.?
위키가 아직 대중적이진 않은가봅니다.
이런 내용들을 찾기가 아직은 쉽지 않네요.

sangu의 이미지

icristi wrote:
KLDP Wiki에 가보면 C소스나 HTML 소스는
vim에서 보이는 것처럼 컬러풀하게 나오던데,
위키에 어떤 엔진을 따로 깔아줘야 하나요?

http://moniwiki.sourceforge.net/wiki.php/VimProcessor

icristi의 이미지

vim과 vim-enhanced가 모두 설치되어 있는데도,
vim처럼 나오질 않네요...
혹시 vim이나 vim-enhanced 버전이 높아야 하나요?
아니면 위키에서 따로 설정이 필요한가요?

McKabi의 이미지

어떤 위키를 쓰시나요?

MoniWiki는 vim processor를 씁니다.

ㄲ ㅏ ㅂ ㅣ / M c K a b i / 7 7 r b i / T o D y

icristi의 이미지

먼저, 위에 답글 주신 분들 감사합니다.
제가 위키는 처음 써봐서 뭐가 뭔지 잘 모르겠네요.

까비 wrote:
어떤 위키를 쓰시나요?

MoniWiki는 vim processor를 씁니다.

일단 Moni Wiki 구여. plugin/process 디렉토리에 따로 있는
vim.php라는 파일도 보입니다.

혹시 따로 설정해줘야 하는 것들이 있나요~
왜 {{{ }}} 로 막으면 죄다 같은 색 같은 스타일로만 나오는지요.
vim 으로 나올 수 있는 소스를 넣었음에도. 다른 어떤 사이트에서는
잘 나오는 소스를 그대로 붙였음에도... 잘 안되네요..

좀 더 많은 정보가 있는 사이트라도 아시는 분 가르쳐주세요~

neogeo의 이미지

vim 6.0 이상을 까십시오

절대 안나옵니다 5.x 에선

이거 때문에 -_- 하루 종일 삽질했습니다.

( vim 에 넘겨주는 파라메터 값이 6.0 용이라 그렇습니다.

자세한건 process 부분의 소스를 살펴보세요.

6.0 이상 까시는게 속 편합니다. :) 물론 vim c syntax 등의 파일도

함께 까셔야죠 )

Neogeo - Future is Now.

McKabi의 이미지

icristi wrote:
혹시 따로 설정해줘야 하는 것들이 있나요~
왜 {{{ }}} 로 막으면 죄다 같은 색 같은 스타일로만 나오는지요.
vim 으로 나올 수 있는 소스를 넣었음에도. 다른 어떤 사이트에서는
잘 나오는 소스를 그대로 붙였음에도... 잘 안되네요..

좀 더 많은 정보가 있는 사이트라도 아시는 분 가르쳐주세요~

더 많은 정보라고 해도 나올게 없습니다. :?

MoinMoin과 MoniWiki는 #!xxx로 시작할 때 xxx에 해당하는 프로세서로 글을 넘겨주고, 프로세스가 나름대로 처리를 한 뒤 결과를 되돌려 주지요. vim 프로세스는 :html 명령과 같은 결과를 내 놓고요.

vim에서 syntax와 :html (또는 $VIMRUNTIME/syntax/2html.vim)이 잘 되는지,
위키 문법은 제대로 썼는지를 확인해보세요.

위키 문법을 바르게 쓰지 않아서 결과가 제대로 안 나오는 경우를 자주 봅니다.

ㄲ ㅏ ㅂ ㅣ / M c K a b i / 7 7 r b i / T o D y

icristi의 이미지

우선 가장 자세한 답변 주신거 감사합니다.
이제 뭔가 좀 보이는 거 같네용.

Quote:

위키 문법을 바르게 쓰지 않아서 결과가 제대로 안 나오는 경우를 자주 봅니다.

우선 위키 문법은 그대로 copy&paste 했기때문에 틀릴게 없을거라고 조심스럽게 생각하구요

Quote:

vim에서 syntax와 :html (또는 $VIMRUNTIME/syntax/2html.vim)이 잘 되는지,
위키 문법은 제대로 썼는지를 확인해보세요.

제가 재차 말씀드리지만 위키를 처음해보고 레퍼런스도 많이 없어서 아무것도 몰라서 여쭤봐요.

$VIMRUNTIME/syntax/2html.vim이 잘되는지 확인해보는 알 수 있는 방법은 무엇일까요?

그리고 위키에서 따로 설정해줘야하는게 있나요?

McKabi의 이미지

icristi wrote:

$VIMRUNTIME/syntax/2html.vim이 잘되는지 확인해보는 알 수 있는 방법은 무엇일까요?

vim에서 syntax가 먹는 파일을 열어놓고 다음 명령을 내려보세요.

:runtime! syntax/2html.vim

html로 바뀐 내용이 보이나요? 그렇다면, vim에는 문제가 없습니다.

icristi wrote:
그리고 위키에서 따로 설정해줘야하는게 있나요?

없습니다. MoniWiki라면 pluin/processor/vim.php가 제대로 있는지, MoniWiki가 불러들일 수 있는 상태인지 정도만 확인하시면 됩니다.

여기까지 왔는데도 마찬가지라면, vim.php가 제대로 돌아가는지 따로 호출해 보세요. (PHP를 조금이라도 알고 있어야겠죠?)

<?php
include('vim.php');
$value = '지금 시험해보고 있는 내용';
$formatter = '';
echo processor_vim($formatter,$value);
?>

이렇게 해서 잘 된다면 vim, vim processor까지는 문제가 없다는 소리가 됩니다.

다시 한 번(아무리 가져다 붙였어도 빈 칸 하나, 줄넘김 하나로 결과가 달라질 때가 많은게 위키입니다.) 문법부터 vim, vim processor까지 달려보세요.

ㄲ ㅏ ㅂ ㅣ / M c K a b i / 7 7 r b i / T o D y

Prentice의 이미지

혹시나 해서 여쭤봅니다.

{{{
}}} 이것만 쓰셨나요, 아니면

{{{#!vim c
}}} 이렇게, 아니면

{{{#!vim html
}}} 이렇게 하셨나요?

icristi의 이미지

결국은 보이네요.
신경써 주신 분들 감사합니다.

그런데 정말 웃긴건 우리 서버에 moniwiki뿐 아니라 MoinMoin위키가 동시에 깔려있었던 거에요.
실제로 사용은 MoinMoin을 쓰는데 moniwiki 디렉토리가 보이길래 그걸 쓰는 줄 알았죠. moniwiki로 보니 확실히 보입니다.

MoinMoin으로 볼 수 있는 방법은 없을까요?

McKabi의 이미지

icristi wrote:

MoinMoin으로 볼 수 있는 방법은 없을까요?

마찬가지로 vim processor를 MoinMoin/processor/에 가져다 놓으면 됩니다.

KLE 위키에 있었으나 지금은 보이지 않네요. MoinMoin은 아예 연결이 안 되고요.

박원규님께서 만든 코드를 올려드립니다.

"""
    MoinMoin - Processor for Syntax Highlighting using the VIM

    Copyright (c) 2002 by Won-Kyu Park <wkpark@kldp.org>
    All rights reserved, see COPYING for details.

    $Id$
"""
import os,re,string,sys,sha

def process(request, formatter, lines):
    type=string.strip(lines[0][5:])
    del lines[0]
    buff=string.join(lines, '\n')+'\n'

    if type not in ['','txt','python','sh','perl','java','c','cpp','C','vim',
       'diff','tex','fortran']:
       buff = '<pre class=code>\n' + buff + '</pre>\n'
       sys.stdout.write(formatter.rawHTML(buff))
       return

    fname = sha.new(buff).hexdigest()

    fptr = open("/var/tmp/%s" % fname,"w")
    fptr.write(buff)
    fptr.close()
    options='+"set number" '
    cmd = 'cat "%(file)s" | %(vim)s -T xterm -e -s /dev/stdin \
        +"syntax on" +"set syntax=%(type)s" %(options)s \
        +"so %(tohtml)s" +"wq! /dev/stdout" +q' % {
        'file': "/var/tmp/%s" % fname,'type':type,
        'vim': '/usr/bin/vim',
        'options': options,
        'tohtml': '\$VIMRUNTIME/syntax/2html.vim',
    }

    fp = os.popen(cmd, "r")
    html = fp.read()
    fp.close()
    os.system('rm -f /var/tmp/%s' % fname)

    html=re.sub(r'<title>.*title>','',html)
    html=re.sub(r'<\/?head>|<\/?html>|<meta.*>|<\/?body.*>','',html)
    html=re.sub(r'<pre>','<pre class=code style="color:white;background-color:bl

    sys.stdout.write(formatter.rawHTML(html))

올려놓고 보니 좀 오래된 코드네요. 8)

ㄲ ㅏ ㅂ ㅣ / M c K a b i / 7 7 r b i / T o D y

Supermania의 이미지

저도 비슷한문제가 있어 검색을 해봤는데 얼마전에 비슷한
질문이 있었네요~ :wink:

저 역시도 MoinWiki 1.05를 받아서 설치했는데 vim syntax 하이라이팅
이 먹히지를 않네요... 위에 질문하신분하고 틀리게 저같은경우는
{{{#!vim c
some code
}}}

하면 아예 저 사이의 부분이 나오지를 않습니다 >.<;;; 어찌된일인지 ...
vim 는 확실하게 문제가 없습니다 (vim만 쓰기때문에...) ->version 6.2
wiki를 개인적으로 코드도좀 보관하고 이것저것 넣어두기위해서 사용
하려는데 일단은 쉽지가 않네요 @_@;;;

내가 인내하는 만큼 나는 내꿈에 다가서고 있다.

fibonacci의 이미지

하하.. 뜻하지 않게 MoinMoin프로세서가 튀어나오는군요~

잘 줏어먹겠습니다. :-)

No Pain, No Gain.

kealyung의 이미지

gvim C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\FOO12.tmp +"syntax on " +"set syntax=c" +"so \%VIMRUNTIME\%\syntax\2html.vim" +"wq! CON" +q

php에서 echo를 해보니 이런식으로
$cmd에 들어가더군요..
이걸 cmd에서 실행하닌까 에러가 나오는데..
이런 형식으로 vim을 실행하는거 맞는지요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.