Bir dosyada artıklık olmadan birden çok kez kod üretmek için org modu nasıl alınır?

( Oluşturulan kodu oluşturmak için org-modunu kullanmanın bir yolu var mı? )

#+BEGIN_SRC sh :exports results :results output :wrap SRC haskell
sed '/^elts/,$p' -n Heap03.hs
#+END_SRC

ork modunun dışa aktarılmasında gösterilecek bir dosyadan Haskell kodunu çıkarmama izin ver. Bu, geldiğim kesmenin daha güvenli ve daha akılcı bir versiyonu.

#+BEGIN_SRC sh :exports results :results output verbatim raw
echo '#+BEGIN_SRC haskell'
sed '/^elts/,$p' -n Heap03.hs
echo '#+END_SRC'
#+END_SRC

Şimdi daha fazla soyutlama istiyorum. Örneğin:

#+NAME: inline
#+BEGIN_SRC sh :exports none :results output verbatim raw
echo '#+BEGIN_SRC haskell'
echo "[[./$FILE][$FILE]]"
sed '/^elts/,$p' -n $FILE
echo '#+END_SRC'
#+END_SRC

#+CALL: inline(FILE="Heap01.hs")
#+CALL: inline(FILE="Heap02.hs")

Tatmamaya çalıştığım iki kriter (ve sorun yaşıyorum):

  1. Haskell kodunun yukarısına otomatik olarak eklenen dosyaya bir bağlantım olmalı.
  2. Arama mümkün olduğunca az olmalıdır.

: wrap kullanarak ilk kriteri nasıl alacağımı anlayamadım ve ikinci kritere göre yapabileceğim en iyi şey # + CALL: satır içi (FILE = "Heap01.hs) "): SRC haskell'i ile sarın, bu da benim tadıma göre biraz fazla ağır.

Teşekkürler!

0

1 cevap

Ne hakkında (not: adından sonra ve: var tanımı):

#+name: inline
#+BEGIN_SRC sh :exports none :results output verbatim raw :var FILE=""
echo "[[./$FILE][$FILE]]"
echo '#+BEGIN_SRC haskell'
sed '/^elts/,$p' -n $FILE
cat $FILE
echo '\n#+END_SRC'
#+END_SRC

Ve sonra (ham sonuçlarla):

#+CALL: inline(FILE="Heap01.hs") :results raw
1
katma
(Kolonun olmaması benim üzerimde sadece bir yazı hatasıydı) Bu, Haskell dosyasının ayıklanan kısımda "# + END_SRC" içeriyorsa kesilir, değil mi? Bir org modu işlevini çağıran org-mode işlevini yazmaya çalıştım, ancak bunu işe yaratamadım. Merak ediyorum, biraz problem çözmem gerekip gerekmediğini merak ediyorum.
katma yazar jasonwryan, kaynak
İyi bir sebep yok. Kısmen, org-mode 'un işlevselliğini araştırıyorum; Kısmen, benim ilk içgüdüsü bir ilerleme göstermek için benzer Haskell dosyaların bir demet yapmak, ama sadece satır içi bunlardan kısımlarını görüntülemek için, ve ben sadece onu takip ediyorum.
katma yazar jasonwryan, kaynak
# + END_SRC'den # + END_SRC'den çıkmak istersiniz. Ayrıca * ile başlayan tüm satırlardan da kaçış *. Görünüşe göre, karışıklığın tersi yoluna gidiyorsunuz. Neden haskell kodunuzu org'a koymuyorsunuz ve karşıtlıktan ziyade dışarı çıkmak için arapayı kullanmıyorsunuz?
katma yazar Maximus Minimus, kaynak