diff --git a/nu/atom.nu b/nu/atom.nu new file mode 100644 index 0000000..b46aea5 --- /dev/null +++ b/nu/atom.nu @@ -0,0 +1,19 @@ +(load "NuMarkup:macros") + +(set &feed (NuMarkupOperator operatorWithTag:"feed" prefix:<<-END + +END)) + +# add tags as needed +(markup title + subtitle + id + generator + link + updated + entry + author + published + content + name) + diff --git a/nu/macros.nu b/nu/macros.nu new file mode 100644 index 0000000..fdd6ffd --- /dev/null +++ b/nu/macros.nu @@ -0,0 +1,14 @@ +;; +;; macro to define markup operators +;; see xhtml.nu, rss.nu, etc. for examples +;; +(macro markup (*names) + `(progn + (',*names each: + (do (name) + (set stringName (name stringValue)) + (set expression + (list 'global + ((+ "&" stringName) symbolValue) + '(NuMarkupOperator operatorWithTag:stringName))) + (eval expression))))) diff --git a/nu/rss.nu b/nu/rss.nu index bfa77c7..55d37b0 100644 --- a/nu/rss.nu +++ b/nu/rss.nu @@ -1,16 +1,9 @@ +(load "NuMarkup:macros") + (set &rss (NuMarkupOperator operatorWithTag:"rss" prefix:<<-END END contents:(list))) -(macro markup (*names) - `(progn - (',*names each: - (do (name) - (set stringName (name stringValue)) - (set expression - (list 'global ((+ "&" stringName) symbolValue) '(NuMarkupOperator operatorWithTag:stringName))) - (eval expression))))) - # add tags as needed (markup channel title diff --git a/nu/xhtml.nu b/nu/xhtml.nu index d37d236..a4c9e8f 100644 --- a/nu/xhtml.nu +++ b/nu/xhtml.nu @@ -1,3 +1,5 @@ +(load "NuMarkup:macros") + (global XMLNS "http://www.w3.org/1999/xhtml") (set &html (NuMarkupOperator operatorWithTag:"html" prefix:<<-END @@ -12,15 +14,6 @@ END contents:(list xmlns:XMLNS))) END contents:(list xmlns:XMLNS))) -(macro markup (*names) - `(progn - (',*names each: - (do (name) - (set stringName (name stringValue)) - (set expression - (list 'global ((+ "&" stringName) symbolValue) '(NuMarkupOperator operatorWithTag:stringName))) - (eval expression))))) - # add tags as needed (markup a area