ikiwiki/doc/todo/inline_raw_files.mdwn

91 lines
3.3 KiB
Markdown

[[!template id=gitbranch branch=wtk/raw_inline author="[[wtk]]"]]
summary
=======
Extend inlining to handle raw files (files with unrecognized extensions).
Also raise an error in `IkiWiki::pagetype($file)` if `$file` is blank, which avoids trying to do much with missing files, etc.
I'm using the new code in my [blog][].
[blog]: http://www.physics.drexel.edu/~wking/unfolding-disasters/posts/yacc2dot/
usage
=====
\[[!inline pagenames="somefile.txt" template="raw" feeds="no"]]
> But inline already supports raw files in two ways:
>
> * setting raw=yes will cause a page to be inlined raw without
> using any template, as if it were part of the page at the location
> of the inline
> * otherwise, the file becomes an enclosure in the rss feed, for use with
> podcasting.
>
> So I don't see the point of your patch. Although since your text
> editor seems to like to make lots of whitespace changes, it's possible
> I missed something in the large quantity of noise introduced by it.
> --[[Joey]]
>> As I understand it, setting `raw=yes` causes the page to be inlined
>> as if the page contents had appeared in place of the directive. The
>> content is then processed by whatever `htmlize()` applies to the
>> inlining page. I want the inlined page to be unprocessed, and
>> wrapped in `<pre><code>...</code></pre>` (as they are on the blog
>> post I link to above).
>>
>> Enclosures do not include the page contents at all, just a link to
>> them. I'm trying to inline the content so I can comment on it from
>> the inlining page.
>>
>> Apologies for my cluttered version history, I should have branched my
>> earlier changes off to make things clearer. I tried to isolate my
>> whitespace changes (fixes?) in c9ae012d245154c3374d155958fcb0b60fda57ce.
>> 157389355d01224b2d3c3f6e4c1eb42a20ec8a90 should hold all the content
>> changes.
>>
>> A list of other things globbed into my master branch that should have
>> been separate branches:
>>
>> * Make it easy to select a Markdown executable for mdwn.pm.
>> * Included an updated form of
>> [[Javier Rojas' linktoimgonly.pm|forum/link_to_an_image_inside_the_wiki_without_inlining_it]].
>> * Included an updated form of
>> [Jason Blevins' mdwn_itex.pm](http://jblevins.org/git/ikiwiki/plugins.git/plain/mdwn_itex.pm).
>> * Assorted minor documentation changes.
>>
>> --[[wtk]]
>>> I haven't heard anything in a while, so I've reorganized my version
>>> history and rebased it on the current ikiwiki head. Perhaps now it
>>> will be easier to merge or reject. Note the new branch name:
>>> `raw_inline`. I'll open separate todo items for items mentioned in my
>>> previous comment. --[[wtk]]
----
Reviewing your patch the first thing I see is this:
<pre>
+ if (! $file) {
+ error("Missing file.");
+ }
</pre>
This fails if the filename is "0". Also, `pagetype()`
currently cannot fail; allowing it to crash the entire
wiki build if the filename is somehow undefined seems
unwise.
I didn't look much further, because it seems to me what you're trying to do
can be better accomplished by using the highlight plugin. Assuming the raw
file you want to inline and comment on is some source-code-like thing,
which seems likely.
Or, another way to do it would be to use the templates plugin, and make
a template there that puts an inline directive inside pre tags.
--[[Joey]] [[!tag reviewed]]