* :noweb from external file [not found] <mailman.109.1498147218.16109.emacs-orgmode@gnu.org> @ 2017-06-22 22:08 ` edgar 2017-06-24 6:03 ` edgar 0 siblings, 1 reply; 4+ messages in thread From: edgar @ 2017-06-22 22:08 UTC (permalink / raw) To: emacs-orgmode Hello, I would like to know if someone knows how I can achieve something like this (importing a block of code from another file): Definition of the original code: ../dir1/file1.org ============================== #+NAME: py-numpy #+CAPTION: Loading Numpy and Matplotlib onto Python. #+BEGIN_SRC python :results none import numpy as np from matplotlib import pyplot as pl #+END_SRC ============================== I would like something like this: ../dir2/file2.org ============================== #+NAME: py-noweb #+CAPTION: Loading Numpy and Matplotlib onto Python. #+BEGIN_SRC python :results none :noweb yes <<../dir1/file1.org::py-numpy>> #+END_SRC ============================== Right now, I can only do it like this: ../dir2/file3.org ============================== #+INCLUDE: ../dir1/file1.org::py-numpy #+NAME: py-noweb #+CAPTION: Loading Numpy and Matplotlib onto Python. #+BEGIN_SRC python :results none :noweb yes <<py-numpy>> #+END_SRC ============================== I know that there is Library of Babel, but I don't know how to use it (I installed it through ELPA). The documentation mentions a ~doc~ directory, but I don't have such a directory in ~/.emacs.d/elpa/org-*/. Besides, it may be that I don't always want to store my functions in the library. Thanks! ------------------------------------------------- ONLY AT VFEmail! - Use our Metadata Mitigator to keep your email out of the NSA's hands! $24.95 ONETIME Lifetime accounts with Privacy Features! 15GB disk! No bandwidth quotas! Commercial and Bulk Mail Options! ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: :noweb from external file 2017-06-22 22:08 ` :noweb from external file edgar @ 2017-06-24 6:03 ` edgar 2017-07-01 6:53 ` edgar 0 siblings, 1 reply; 4+ messages in thread From: edgar @ 2017-06-24 6:03 UTC (permalink / raw) To: emacs-orgmode On 2017-06-22 22:08, edgar@openmail.cc wrote: > Right now, I can only do it like this: > > ../dir2/file3.org > ============================== > #+INCLUDE: ../dir1/file1.org::py-numpy > #+NAME: py-noweb > #+CAPTION: Loading Numpy and Matplotlib onto Python. > #+BEGIN_SRC python :results none :noweb yes > <<py-numpy>> > #+END_SRC > ============================== > I'm sorry. This is not working either. I am not trying to waste your time, I promise: it was working at some point. Thanks again. ------------------------------------------------- ONLY AT VFEmail! - Use our Metadata Mitigator to keep your email out of the NSA's hands! $24.95 ONETIME Lifetime accounts with Privacy Features! 15GB disk! No bandwidth quotas! Commercial and Bulk Mail Options! ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: :noweb from external file 2017-06-24 6:03 ` edgar @ 2017-07-01 6:53 ` edgar 2017-07-01 7:36 ` edgar 0 siblings, 1 reply; 4+ messages in thread From: edgar @ 2017-07-01 6:53 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1829 bytes --] On 2017-06-24 06:03, edgar@openmail.cc wrote: > On 2017-06-22 22:08, edgar@openmail.cc wrote: > >> Right now, I can only do it like this: >> >> ../dir2/file3.org >> ============================== >> #+INCLUDE: ../dir1/file1.org::py-numpy >> #+NAME: py-noweb >> #+CAPTION: Loading Numpy and Matplotlib onto Python. >> #+BEGIN_SRC python :results none :noweb yes >> <<py-numpy>> >> #+END_SRC >> ============================== >> > > I'm sorry. This is not working either. I am not trying to waste your > time, I promise: it was working at some point. > > Thanks again. * Contribution: Script to convert directory with source to an org-file So, by now, everybody knows that I don't understand squat about lisp. Yet, I created a little bash script (for which there may be an alternative already) to convert a directory with source files (in Python) to source blocks within an Org file. It should be easily adaptable to other languages. I hope that it is useful to someone. See attachment. * Question The reason for which I reply to this thread is that it can serve in the case that one wishes to use (org-babel-lob-ingest "path/to/file.org"). I would like to know if loading such a file every time I start Emacs (with my init file) will slow the startup. Thanks, and sorry if it is a stupid question. * Request (or how to, if exists) Does anybody know how to achieve this?: - inherit fill-column When C-c ' to edit source it would be nice if the new temporary buffer had the same fill-column as the one that spawns it Thanks for this too. ------------------------------------------------- ONLY AT VFEmail! - Use our Metadata Mitigator to keep your email out of the NSA's hands! $24.95 ONETIME Lifetime accounts with Privacy Features! 15GB disk! No bandwidth quotas! Commercial and Bulk Mail Options! [-- Attachment #2: dir-to-org-babel.org --] [-- Type: text/plain, Size: 3428 bytes --] This code helps to convert a directory with Python files into an org-mode file with code blocks. Change the value of :dir if you want another path. Do ~C-c C-c~ or ~C-c C-v C-e~ (~org-babel-execute-maybe~) on the next block. It will (hopefully) generate a file named *code-blocks.org* which you could (possibly) use to load into the Library of Babel by doing ~M-:(org-babel-lob-ingest "path/to/file.org")~ #+HEADER: :results none #+BEGIN_SRC bash :dir ./ #!/bin/bash # * Set a general configuration cat << EOF > code-blocks.org; All my functions are in this file. If you want to create individual files, run ~M-x org-babel-tangle~. Make sure that there is a directory for each heading. ,* License EOF cat LICENSE.txt >> code-blocks.org cat <<EOF >> code-blocks.org ,* Configuration :noexport:ARCHIVE: When exporting, print table of contents, author and date ,#+OPTIONS: toc:t author:t date:t When opening this file, visually indent lines according to headers ,#+STARTUP: indent hidestars By default, set Python blocks to run with Python 3, do not evaluate when exporting (quick) and work in a dedicated session. ,#+PROPERTY: header-args:python ":python python3 :eval no-export :session EOF printf "* Code to generate this file\n" >> code-blocks.org; cat dir-to-org-babel.org >> code-blocks.org; printf "\n" >> code-blocks.org; # * Loop over the contents of the current # directory (having two nested while IFS... seemed # too much, but may be a more efficient way) for dir in *; do # ** Make sure that we will look into directories if [[ -d "$dir" ]] && [[ ! "$dir" =~ "Moose" ]]; then # *** Make the name of the sub-dir a heading printf "* $dir\n"; # ** Loop over the files of the current sub-dir # https://stackoverflow.com/a/301059 this # is safe (requires that ~find~ can use # ~-print0~) while IFS= read -r -d '' file; do # *** Print file only if it has code # **** Get number of lines with awk numl=$(awk 'END{print NR}') if [[ "$numl" -gt 0 ]]; then # *** Print the file names (in quotation # format; with spaces like \ ) printf '** %q\n' "${file##./}" | sed "s-$dir/--"; # *** Print a name for the block, # substitute slashes with dashes, # remove ./ # **** Create prototype for name a=py-$(printf "$file" | sed 's_\./__g; s_/_-_g') # **** Print name header printf "#+NAME: $a\n" # *** Print a caption for the block # (use same prototype as the name) printf "#+CAPTION: $a\n"; # *** Print start of the block printf "#+BEGIN_SRC python :tangle $file\n"; cat "$file"; # *** Print end of block printf "#+END_SRC\n\n"; else printf "\n"; fi; done < <(# **** List all files that end with .py find ./"$dir" -mindepth 1\ -type f -iname '*.py' -print0) fi; # ** Export everything that is printed to a file done >> code-blocks.org #+END_SRC ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: :noweb from external file 2017-07-01 6:53 ` edgar @ 2017-07-01 7:36 ` edgar 0 siblings, 0 replies; 4+ messages in thread From: edgar @ 2017-07-01 7:36 UTC (permalink / raw) To: emacs-orgmode On 2017-07-01 06:53, edgar@openmail.cc wrote: > * Contribution: Script to convert directory with source to an org-file > So, by now, everybody knows that I don't understand squat about lisp. > Yet, I created a little bash script (for which there may be an > alternative already) to convert a directory with source files (in > Python) to source blocks within an Org file. It should be easily > adaptable to other languages. I hope that it is useful to someone. See > attachment. > Oops, missed the name file in the awk line modified dir-to-org-babel.org @@ -58,7 +58,7 @@ load into the Library of Babel by doing while IFS= read -r -d '' file; do # *** Print file only if it has code # **** Get number of lines with awk - numl=$(awk 'END{print NR}') + numl=$(awk 'END{print NR}' "$file") if [[ "$numl" -gt 0 ]]; then # *** Print the file names (in quotation # format; with spaces like \ ) ------------------------------------------------- ONLY AT VFEmail! - Use our Metadata Mitigator to keep your email out of the NSA's hands! $24.95 ONETIME Lifetime accounts with Privacy Features! 15GB disk! No bandwidth quotas! Commercial and Bulk Mail Options! ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-07-01 14:13 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <mailman.109.1498147218.16109.emacs-orgmode@gnu.org> 2017-06-22 22:08 ` :noweb from external file edgar 2017-06-24 6:03 ` edgar 2017-07-01 6:53 ` edgar 2017-07-01 7:36 ` edgar
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).