emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* merging subtrees (in a syllabus)
@ 2017-08-22 20:09 Matt Price
  2017-08-23  6:25 ` Adam Porter
  2017-08-23 20:55 ` Kaushal Modi
  0 siblings, 2 replies; 4+ messages in thread
From: Matt Price @ 2017-08-22 20:09 UTC (permalink / raw)
  To: Org Mode

[-- Attachment #1: Type: text/plain, Size: 2855 bytes --]

I maintain syllabi for courses htat have *discussion* ocmponents and *lab*
ocmponents; these are often quite separate from one another.

I end up with trees that look like this:

* Outline

** <2017-09-12 Tue> (Week {{{n}}}) Hacking History in the Himalaya
Why we should write history, why everyone should do it, and why that means
we need the Web.  Hacker cultures, collaborative learning, knowledge
sharing, non-expert culture. And a few words about the world's
third-tallest mountain.

*** Background:
- [[
http://www.journalofamericanhistory.org/issues/952/interchange/index.html][JAH
- The Promise of Digital History]], [[
http://writinghistory.trincoll.edu/revisioning/tanaka-2012-spring/][Pasts
in a Digital Age]]
-
*** Lab 01: Getting Started
- HTML and Markdown
- Some Tools: Github, Dropbox, Atom Text Editor
- About Our Partners

** <2017-09-19 Tue> (Week {{{n}}}) Language of the Web
The Web is written in a language called HTML, with some help from other
lanugages called CSS and Javascript. The nonlinear and interactive
properties of these languages afford new possibilities for storytelling. We
explore how the Internet works, and what that means for historical
narrative.
*** Readings
- Vannevar Bush, "[[
http://www.theatlantic.com/magazine/archive/1969/12/as-we-may-think/3881/][As
We May Think]]"
- Tim Berners-Lee, /Weaving the Web/
[[file:readings/berners-lee-weaving-web.pdf][Ch. 2,4]].
- Edward L. Ayers, "[[http://www.vcdh.virginia.edu/Ayers.OAH.html][History
in Hypertext]]"
- Rus Shuler, "[[
http://www.theshulers.com/whitepapers/internet_whitepaper/index.html][How
Does the Internet Work?]]"
*** Lab 02: Understanding HTML
*Resources:* [[http://jsbin.com/#html,live][JSBin online HTML/Javascript
editor]]; [[http://codeacademy.net][codeacademy courses]]; [[
http://en.wikipedia.org/wiki/HTML][on Wikipedia]]; [[
http://www.w3.org/MarkUp/Guide/][w3 guide]]; also cf. Zotero Bibliography

----------------------

Because the course readings and hte lab are often separate, it can be
difficult and confusing to maintain the course outline in its final form.
Id like to be able, instead, to maintain the labs and readings separately,
and /merge/ them to produce the final document.  So I'd start with
something like this:

* Outline
** Week {{{n}}}
** Week {{{n}}}

* Discussion Topics
** Hacking History in the Himalaya
*** Readings
- ....
- ...
** The Language of the Web
*** Readings
- ...
- ...

* Labs
** Getting Started
- ...
- ...
- ...
** Understanding HTML
- ...
- ...


And then I'd run some elisp that mashes them all up together, and give that
to the students, since I think that'll make it easier for them to read.

Anyone on the list have any ideas? If it also comes with a thought about
how to generate an org date objet form an initial seed and a session
number, that's be fabulous too.

Thank you as always!

Matt

[-- Attachment #2: Type: text/html, Size: 4158 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: merging subtrees (in a syllabus)
  2017-08-22 20:09 merging subtrees (in a syllabus) Matt Price
@ 2017-08-23  6:25 ` Adam Porter
  2017-08-23 20:55 ` Kaushal Modi
  1 sibling, 0 replies; 4+ messages in thread
From: Adam Porter @ 2017-08-23  6:25 UTC (permalink / raw)
  To: emacs-orgmode

Hi Matt,

One potentially crazy idea would be to store each lab/discussion entry
in a named "#+BEGIN_SRC org" block, and use Babel <<anchors>> to merge
them in a final noweb SRC block.  Seems a bit recursive, but I guess you
could edit each org block with org-edit-special and escape the nesting.

Another possibility would be to leave them as they are now, but to use
sparse trees in combination with tags or properties to only display lab
or discussion entries.

Also, you may find org-tree-to-indirect-buffer useful.  I have the
impression that not many Org users are aware of it or how
powerful--might I even say, liberating--it is.  You can essentially edit
each subtree of your document as a separate document in its own buffer,
while behind the scenes it's all taking place in the source buffer.  If
you're interested in this, I could provide some more details and some
support functions that make it more useful.

> If it also comes with a thought about how to generate an org date
> objet form an initial seed and a session number, that's be fabulous
> too.

I just discovered this yesterday, and it seems relevant:

https://github.com/abo-abo/tiny

Apparently it can be used like this:

m\n8|**** TODO Learning from Data Week %(+ x 2) \nSCHEDULED: <%(date "Oct 7" (* x 7))> DEADLINE: <%(date "Oct 14" (* x 7))>

Which results in:

**** TODO Learning from Data Week 2
SCHEDULED: <2013-10-07 Mon> DEADLINE: <2013-10-14 Mon>
**** TODO Learning from Data Week 3
SCHEDULED: <2013-10-14 Mon> DEADLINE: <2013-10-21 Mon>
[...]

Hope this helps!

Adam

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: merging subtrees (in a syllabus)
  2017-08-22 20:09 merging subtrees (in a syllabus) Matt Price
  2017-08-23  6:25 ` Adam Porter
@ 2017-08-23 20:55 ` Kaushal Modi
  2017-08-24  0:55   ` Matt Price
  1 sibling, 1 reply; 4+ messages in thread
From: Kaushal Modi @ 2017-08-23 20:55 UTC (permalink / raw)
  To: Matt Price, Org Mode

[-- Attachment #1: Type: text/plain, Size: 3676 bytes --]

On Tue, Aug 22, 2017 at 4:10 PM Matt Price <moptop99@gmail.com> wrote:

> And then I'd run some elisp that mashes them all up together, and give
> that to the students, since I think that'll make it easier for them to read.
>
> Anyone on the list have any ideas?
>

How about using plain old #+INCLUDE:

Example made up from your examples:

===== a.org (for exporting) =====
* Outline
** <2017-09-12 Tue> (Week {{{n}}}) Hacking History in the Himalaya
#+INCLUDE: "b.org::#hacking-history-in-the-himalaya-intro" :only-contents t
#+INCLUDE: "b.org::#hacking-history-in-the-himalaya-background"
*** Lab 01: Getting Started
#+INCLUDE: "b.org::#lab-getting-started" :only-contents t
** <2017-09-19 Tue> (Week {{{n}}}) Language of the Web
#+INCLUDE: "b.org::#the-language-of-the-web-intro" :only-contents t
#+INCLUDE: "b.org::#the-language-of-the-web-readings"
*** Lab 02: Understanding HTML
#+INCLUDE: "b.org::#lab-understanding-html" :only-contents t
=====

===== b.org (for your content development) =====
* Discussion Topics
** Hacking History in the Himalaya
*** Intro
:PROPERTIES:
:CUSTOM_ID: hacking-history-in-the-himalaya-intro
:END:
Why we should write history, why everyone should do it, and why that means
we
need the Web.  Hacker cultures, collaborative learning, knowledge sharing,
non-expert culture. And a few words about the world's third-tallest
mountain.
*** Background
:PROPERTIES:
:CUSTOM_ID: hacking-history-in-the-himalaya-background
:END:
- [[
http://www.journalofamericanhistory.org/issues/952/interchange/index.html][JAH
- The Promise of Digital History]]
- [[
http://writinghistory.trincoll.edu/revisioning/tanaka-2012-spring/][Pasts
in a Digital Age]]
** The Language of the Web
*** Intro
:PROPERTIES:
:CUSTOM_ID: the-language-of-the-web-intro
:END:
The Web is written in a language called HTML, with some help from other
lanugages called CSS and Javascript. The nonlinear and interactive
properties of
these languages afford new possibilities for storytelling. We explore how
the
Internet works, and what that means for historical narrative.
*** Readings
:PROPERTIES:
:CUSTOM_ID: the-language-of-the-web-readings
:END:
- Vannevar Bush, "[[
http://www.theatlantic.com/magazine/archive/1969/12/as-we-may-think/3881/][As
We May Think]]"
- Tim Berners-Lee, /Weaving the Web/
[[file:readings/berners-lee-weaving-web.pdf][Ch. 2,4]].
- Edward L. Ayers, "[[http://www.vcdh.virginia.edu/Ayers.OAH.html][History
in Hypertext]]"
- Rus Shuler, "[[
http://www.theshulers.com/whitepapers/internet_whitepaper/index.html][How
Does the Internet Work?]]"
* Labs
** Getting Started
:PROPERTIES:
:CUSTOM_ID: lab-getting-started
:END:
- HTML and Markdown
- Some Tools: Github, Dropbox, Atom Text Editor
- About Our Partners
** Understanding HTML
:PROPERTIES:
:CUSTOM_ID: lab-understanding-html
:END:
*Resources:* [[http://jsbin.com/#html,live][JSBin online HTML/Javascript
editor]]; [[http://codeacademy.net][codeacademy courses]]; [[
http://en.wikipedia.org/wiki/HTML][on
Wikipedia]]; [[http://www.w3.org/MarkUp/Guide/][w3 guide]]; also cf. Zotero
Bibliography

----------------------

Because the course readings and hte lab are often separate, it can be
difficult
and confusing to maintain the course outline in its final form. Id like to
be
able, instead, to maintain the labs and readings separately, and /merge/
them to
produce the final document.  So I'd start with something like this:
=====



If it also comes with a thought about how to generate an org date objet
> form an initial seed and a session number, that's be fabulous too.
>

I don't have a good idea on how to implement the date thing, but I see that
others have provided some input.
-- 

Kaushal Modi

[-- Attachment #2: Type: text/html, Size: 5918 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: merging subtrees (in a syllabus)
  2017-08-23 20:55 ` Kaushal Modi
@ 2017-08-24  0:55   ` Matt Price
  0 siblings, 0 replies; 4+ messages in thread
From: Matt Price @ 2017-08-24  0:55 UTC (permalink / raw)
  Cc: Org Mode

[-- Attachment #1: Type: text/plain, Size: 1460 bytes --]

On Wed, Aug 23, 2017 at 4:55 PM, Kaushal Modi <kaushal.modi@gmail.com>
wrote:

> On Tue, Aug 22, 2017 at 4:10 PM Matt Price <moptop99@gmail.com> wrote:
>
>> And then I'd run some elisp that mashes them all up together, and give
>> that to the students, since I think that'll make it easier for them to read.
>>
>> Anyone on the list have any ideas?
>>
>
> How about using plain old #+INCLUDE:
>
> Hmm, Interesting. It's not quite as flexible as I'd like -- what I'd most
prefer to do is to move the discussion topics and labs around arbitrarily
and then have org print things out for me nice and cleanly.  I'm not sure
but maybe something more like this (ends up being a little ugly with all
the crazy counter macros):


* outline
** Week 1
#+INCLUDE: "~/test.org::#topic1"
#+INCLUDE: "~/test.org::#lab1"
* labs :noexport:
*** lab zero 1
:PROPERTIES:
:CUSTOM_ID: lab{{{n(labs)}}}
:END:
* topics  :noexport:
*** topic oh oh one
:PROPERTIES:
:CUSTOM_ID: topic{{{n(topics)}}}
:END:

I'd prefer to have macros in the "Week" headlines and  the #+INCLUDE
statements but macros don't expand in INCLUDES, unfortunately.  This is OK
but still not super-elegant.  Still, definitley better than nothing!



> ----------------------
> I don't have a good idea on how to implement the date thing, but I see
> that others have provided some input.
>

I came up with an acceptable solution, bu it's not very sophisticated --
see the other thread...


> --
>
> Kaushal Modi
>

[-- Attachment #2: Type: text/html, Size: 2992 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-08-24  0:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-22 20:09 merging subtrees (in a syllabus) Matt Price
2017-08-23  6:25 ` Adam Porter
2017-08-23 20:55 ` Kaushal Modi
2017-08-24  0:55   ` Matt Price

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).