Pandoc과 알려지지 않은 불가사의

내가 Haskell을 마지막으로 언급한 것은 다음과 같은 기사에서였습니다. 엑스모나드. 그러나 내가 당신에게 제시하는 세상에서 주목할만한 유일한 것은 아닙니다.

확실히 모두가 이미 알고 있습니다 인하, 내가 당신에게 제시하지 않으면. 텍스트를 작성할 때 더 빠르고 생산적으로 만들 수 있는 가벼운 마크업 언어입니다. 지금은 충분합니다.

음, Markdown은 혼자가 아니며 동일한 기능을 수행하는 많은 언어가 있습니다. 일반적으로 모든 사람은 일부 마크업이 포함된 일반 텍스트를 가져와서 HTML, LaTex 등으로 형성하기 위해 전달한다는 생각을 가지고 있습니다. 거기까지 모두 좋습니다.

이로 인해 몇 가지 문제가 발생합니다. 첫째, 가장 중요한 것은 일부 구현에는 이런 저런 우리가 원하는 기능. 또는 이미 이것을 구현한 마크업 언어는 우리가 좋아하지 않습니다.

그리고 변덕에 휘말리기 전에 더 나은 해결책이 있다는 것을 생각하고 깨달아야 합니다. 모든 마크업 언어를 다른 것으로 바꾸는 것. 어느.

여기서 하스켈이 등장합니다. 내가 말하는 경이로움은 존재하고, 살아 있고, 이름이 있고, 작동하고, 놀랍습니다. 자신을 호출 Pandoc 그리고 그것은 버클리 대학의 철학자인 존 맥팔레인의 손에서 나왔습니다. 잠깐만요, 좋은 일이 시작되니까요.

할일 콘트라 할일

초점이 부족하여 pandoc이 모든 것에 대한 평범한 범위를 제공할 것으로 기대할 수 있습니다. 하지만. 그것은 훌륭하게 작동하고 놀라운 기능을 가지고 있습니다.

단순하게 유지하기 위해 pandoc에 모든 소스 파일을 전달합니다. (Markdown 또는 reStructuredText 또는 pandoc이 지원하는 다른 것에서) -everyone ready?-와 같이 완성된 형식으로 전달합니다.

LaTex, 일반 HTML, PDF, DocBook, OpenDocument, docx, rtf, man, 일반 텍스트 및 최대 세 가지 유형의 HTML 프리젠테이션; 그리고 내 목록은 짧고 매우 짧습니다. 다음은 그 힘을 설명하는 다이어그램입니다.

그리고 그것이 충분하지 않은 것처럼 그것은 Haskell 라이브러리(또는 서점, 원하는 대로 부르세요)입니다. 다른 프로그램의 코드에 통합될 수 있습니다. 하킬 가장 많이 악용하는 것 중 하나이며, 이것은 pandoc을 사용하여 무해한 Markdown 및 일부 LaTex에서 순수 HTML로 변환할 수 있는 정적 페이지 생성기입니다.

여기에 사이트 목록 이미 개인 사이트, 블로그 스타일로 사용하고 있는 사람.

그리고 그것을 끝내는 것은 꽤 빠릅니다. 그리고 이러한 모든 이점에도 불구하고 앵글로색슨어를 사용하는 국가에서만 확장되는 것으로 보이며 여기에는 이러한 유형의 프레젠테이션과 같은 정보가 거의 없습니다. 사용 설명서가 영어로 되어 있기 때문일 수 있습니다.

단점

물론 있어야 합니다. 상대적으로 짧은 확장 시간을 제외하고 대부분의 편집자는 이를 완전히 지원하지 않습니다.

Vim에는 구문 강조 표시가 있습니다. 파라 마크다운과 기본적으로 다른 것은 거의 없기 때문에 pandoc에 대한 가장 흥미로운 점 중 일부인 확장된 구문을 놓치고 있습니다.

코드, 메타데이터 및 고급 기능 내의 표, 따옴표, 각주, HTML 및 LaTex와 같이 원래 Markdown에서 제기되지 않았으며 우리의 삶을 더 쉽게 만들어 주는 것.

그건 그렇고, Emacs는 이점이 있습니다. 구문 강조 표시와 몇 가지 유용한 명령을 제공하는 Markdown 모드가 있지만 판독 모드 Vim과 동등한 기능을 갖춘 본격적인 제품은 여전히 ​​경쟁 할 수 없습니다.

여전히 Vim에 넣는 데 관심이 있다면 여기 구문 파일이 있습니다. 이미 언급한 것처럼 emacs의 경우 markdown 및 pandoc 모드를 설치해야 합니다.

바로 요점

text2tags 패키지를 찾다가 pandoc을 발견했습니다. (다른 변환기이지만 더 제한됨) en 크런치 방 그리고 지금 나는 그것이 사용할 수 있다는 것을 알고 있습니다 데비안 이름으로 안정적입니다. 무엇을 추측하십시오, pandoc. ㅏ 적성 설치 이것으로 충분합니다. 하지만 우리가 사용하는 아치 리눅스 먼저 몇 가지 좌절을 겪어야 합니다.

그 의존 지옥

우리가 가장 먼저 생각하는 것은 pacman -S pandoc을 만드는 것입니다. 음 ... 아니. 공식 리포지토리에도 패키지가 없으며 AUR에 있는 패키지는 엄청난 양의 종속성이 필요하기 때문에 작동하지 않습니다. Haskell을 이미 알고 있다면 이제 cabal이 문제를 해결할 것이라고 생각할 수 있습니다. 예, 하지만 예약이 있습니다. 이렇게 하려면 다음을 실행해야 합니다.

sudo pacman -S ghc cabal-install cabal 업데이트 cabal 설치 pandoc

이것은 효과가 있지만 권장하지는 않습니다. 특히 Haskell의 세계를 탐구하고 싶다면 미래에 끔찍한 문제를 가져올 것이기 때문입니다.

확실히 ArchLinux와 그 철학에 대한 불평을 듣는 것은 이상하게 들릴지 모르지만, 마지막으로 충분히 개발된 환경과 서로 호환 가능; ghc와 cabal-install이 업데이트된 이유.

cabal을 사용하여 다른 패키지를 설치하려면 패키지를 다운로드하는 것이 가장 좋습니다. antiguos ghc에서 cabal-install에서 아치 롤백 머신.

간단한 pacman -U로 설치합니다. 패킷 경로 /etc/pacman.conf 파일에서 시스템을 업그레이드할 때 pacman이 이를 무시하도록 합니다. 내부 섹션 패키지 무시.

이제 예, 우리는 cabal을 사용하여 pandoc을 설치할 수 있으며 제대로 작동하려면 .bashrc 파일에 다음 줄을 넣습니다.

내보내기 경로=~/.cabal/bin:$PATH

그리고 그게 다야. 터무니없는 일이지만 우리는 문제를 피했습니다. 다른 패키지로 시작하려면 로컬로 설치하는 대신 다음을 사용할 수 있습니다. 센브 격리된 환경을 만들고 예를 들어 Hakyll을 설치해야 하는 번거로움을 피할 수 있습니다.

그리고 즉시 나는 그것이 끔찍하다고 경고합니다. 이 모든 것은 Haskell과 Cabal이 Bundle과 gem이 포함된 Ruby와 같이 다른 언어가 이미 탈출한 의존성 지옥을 아직 해결하지 못했기 때문입니다. 어쨌든, 나는 이 작은 해결책을 이안 로스 Hakyll 그룹에서.

인내심을 가지십시오. 그것은 우리를 위해 그것을 컴파일하기 때문에 긴 설치입니다.

사용 및 결론

터미널을 가지고 다음과 같이 주문을 보냅니다.

pandoc -o output-file.ext -i original-file.md

여기서 Markdown(*.md, 내가 사용하는 확장자임)은 다른 형식으로 대체할 수 있고 .ext는 출력에서 ​​사용 가능한 다른 형식으로 대체할 수 있습니다.

거의 매일 이 작업을 수행하는 저에게는 특히 OpenDocument로 내보낼 때 매우 유용했습니다.

그리고 생태계는 놀랍습니다. MacFarlane 자신은 Pandoc을 사용하여 페이지를 변환하는 Haskell 위키를 개발했지만 다른 이야기입니다. 참고로 이 글은 지금까지 쓴 대부분의 글과 마찬가지로 Pandoc과 함께 자랑스럽게 작성되었습니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   가디

    마크다운도 사용합니다. Kate와 Gedit는 구문 강조를 위한 플러그인과 함께 설치할 수 있습니다. 그런 다음 ODT로 변환하기 위해 MultiMarkdown을 선택합니다. 이것은 단락 스타일이 있는 문서에 복사할 때 더 편안하도록 "텍스트를 존중"하는 방법입니다. Pandoc은 나에게 같은 결과를 주지 않았거나 적어도 나는 그것을 하는 방법을 몰랐습니다 😛

    1.    안티

      --strict 옵션을 활성화하여 Pandoc이 표준 Markdown만 사용하도록 할 수 있습니다. 그게 당신이 의미하는 바라면. 그러나 주요 이점은 형식 간의 다양성입니다.
      그들이 그것을 사용하는 것을 본 적이 거의 없기 때문에 그것을 추천하십시오. 그것은 나에게 나쁘지 않았습니다.

  2.   에루나모JAZZ

    LaTeX에서 reStructuredText로 이동하는 데 사용했습니다. 그는 그것을 아주 잘합니다 (대부분 xD)

  3.   MSX

    공유해 주셔서 감사합니다.