2012-02-18 4 views
6

많은 양의 문서를 작성하는 경향이있어서 MediaWiki 형식이 이해하기 쉽고 전통적인 HTML을 작성하는 것보다 많은 시간을 절약 할 수 있습니다. 그러나 나는 또한 블로그를 작성하고 HTML에서 올바른 태그를 입력하기 위해 항상 키보드에서 마우스로 전환하는 것이 많은 시간을 추가한다는 것을 발견했다. 내 기사를 Mediawiki 구문으로 작성한 다음 HTML로 변환하여 블로그에 사용할 수 있기를 바랍니다.명령 행을 사용하여 MediaWiki wikitext 형식을 HTML로 변환

나는 Google 검색을 시도했지만 놀랍게도 아무것도 찾을 수 없었기 때문에 더 나은 명명법이 필요합니다.

저는 리눅스를 사용하며 명령 줄에서이 방법을 선호합니다.

누구나 어떤 생각이나 생각이 있습니까?

+0

대체 형식의 경우 [구조화 된 텍스트 문서의 경우 렉서/파서] (http://stackoverflow.com/q/2087699/33499)를 참조하십시오. – wimh

답변

7

이 부분을 살펴본 후 restucturedtext 나 ​​markdown과 같은 일반 마크 업 언어를 배우고 거기에서 변환 할 수있는 좋은 방법이라고 생각합니다. 이 중 하나를 HTML과 Mediawiki로 변환 할 수있는 pandoc이라는 프로그램이 발견되었습니다. 도움을 감사하십시오.

예 :

pandoc -f mediawiki -s myfile.mediawiki -o myfile.html -s 
+0

하지 마십시오. wikitext에 대한 [대체 구문 분석기] (https://www.mediawiki.org/wiki/Alternative_parsers)는 wikitext가 어떻게 설계 되었는가로 인해 항상 매우 취약합니다. – Nemo

+0

방금 ​​mediawiki를 tex 및 HTML로 변환하기 위해이 대답의 결과로 pandoc을 시도했으며 매우 결과에 만족합니다. 나는 그 허약함에 대해 말할 수는 없지만 만약 당신이 단지 표제와 같은 기초를 사용한다면리스트 등은 완벽하게 좋아 보인다. 파이프에 아주 좋은 stdin/stdout IO를 지원하기 때문에 다른 유닉스 명령어와 잘 어울립니다. –

+2

Pandoc이 전체 wiki 마크 업을 인식하지 못합니다. 그러므로 제대로 파싱 될 수없는 기사가 많이있을 것입니다. 나는 이것을 나 자신으로 시도했다. – Waschbaer

4

This page에는 시도해 볼 수있는 수많은 MediaWiki 파서가 나열되어 있습니다.

10

가장 좋은 미디어 위키 파서를 사용하는 것입니다. 좋은 소식은 MediaWiki 1.19가 바로 명령 줄 도구를 제공한다는 것입니다.

면책 조항 : 해당 도구를 작성했습니다. 컨트롤 + D로 종료,

가 직접 텍스트를 입력 :

스크립트는 소스 코드에서 바로 maintenance/parse.php 몇 가지 예문입니다

$ php maintenance/parse.php --title foo 
''[[foo]]''^D 
<p><i><strong class="selflink">foo</strong></i> 
</p> 
$ 

일반적인 파일 입력 방법 :

$ echo "'''bold'''" > /tmp/foo.txt 
$ php maintenance/parse.php /tmp/foo.txt 
<p><b>bold</b> 
</p>$ 

물론 표준 입력으로 배관 :

$ cat /tmp/foo | php maintenance/parse.php 
<p><b>bold</b> 
</p>$ 

현재 http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/maintenance/parse.php에서 스크립트를 가져와 유지 관리 디렉토리에 저장할 수 있습니다. MediaWiki 1.18과 호환됩니다.

이 스크립트는 MediaWiki 1.19.0에서 사용할 수 있습니다.

+1

사실 이것은 꽤 유용하고, 내가 필요한 것입니다. 앙 뜨완 정보를 감사하십시오. –

+2

위의 코드를 실행하려고 할 때 "PHP 치명적 오류 : 326 행의 /scratch4/dhruv/mediawiki-1.20.2/includes/db/DatabaseMysql.php의 정의되지 않은 함수 mysql_error() 호출"오류가 발생합니다. 내가 어떻게 고칠 수 있는지 생각해? – dhruvbird

+1

또한이 도구가 --dbuser 및 --dbpass를 가져 오는 이유는 무엇입니까? – dhruvbird