summaryrefslogtreecommitdiff
path: root/doc/todo/done/htmlvalidation.mdwn
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-04-04 20:57:46 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-04-04 20:57:46 +0000
commit7a5ae22e5a5789bf2b1be432cdc7551ab78a5241 (patch)
tree33e575b9854a95093145c02dd10bd26e36c3f1ae /doc/todo/done/htmlvalidation.mdwn
parentca57400d532741da4ff510c6905973e89c65a328 (diff)
Convert postprocessordirectives into preprocessordirectives, so they are
expanded before markdown. Consequences: - No need to worry about markdown messing with parameters of preprocessordirectives. (If you had to escape stuff in one before, you'll need to undo that escaping now.) - No need for ugly </p> hacks before inlined subpages. Instead, subpages are wrapped in a <div>, and this prevents markdown from touching them. (This can also be used to add style to subpages.) - rss generation is less of a hack.
Diffstat (limited to 'doc/todo/done/htmlvalidation.mdwn')
-rw-r--r--doc/todo/done/htmlvalidation.mdwn45
1 files changed, 45 insertions, 0 deletions
diff --git a/doc/todo/done/htmlvalidation.mdwn b/doc/todo/done/htmlvalidation.mdwn
new file mode 100644
index 000000000..6b8d0e7c9
--- /dev/null
+++ b/doc/todo/done/htmlvalidation.mdwn
@@ -0,0 +1,45 @@
+ * Doctype is XHTML 1.0 Strict
+
+ One consideration of course is that regular users might embed html
+ that uses deprecated presentational elements like &lt;center&gt;. At
+ least firefox seems to handle that mixture ok.
+ --[[Joey]]
+
+ * [ [inlinepage] ] gets wrapped in &lt;p&gt;...&lt;/p&gt; which has a high chance of invalidating the page.
+
+ Since markdown does this, the only way I can think to fix it is to
+ make the inlined page text start with &lt;/p&gt; and end with
+ &lt;p&gt;. Ugly, and of course there could be problems with
+ markdown enclosing it in other spanning tags in some cases.
+ I've implemented this hack now. :-/ --[[Joey]]
+
+ I used this 'hack' myself, but yesterday I came up with a better idea:
+ &lt;div class="inlinepage"&gt;
+ [ [inlinepage] ]
+ &lt;/div&gt;
+ This prevents markdown enclosing and even adds a useful css identifier. Problem is that this should be added to every page and not in the template(s). --[[JeroenSchot]]
+
+ I can make ikiwiki add that around every inlined page easily
+ enough. However, where is it documented? Came up dry on google.
+ --[[Joey]]
+
+ From <http://daringfireball.net/projects/markdown/syntax#html>:
+ > The only restrictions are that block-level HTML elements e.g. &lt;div&gt;, &lt;table&gt;, &lt;pre&gt;, &lt;p&gt;, etc. must be separated from surrounding content by blank lines, and the start and end tags of the block should not be indented with tabs or spaces. Markdown is smart enough not to add extra (unwanted) &lt;p&gt; tags around HTML block-level tags. [snip]
+ > Note that Markdown formatting syntax is not processed within
+ > block-level HTML tags. E.g., you can't use Markdown-style \*emphasis\* inside an HTML block.
+
+ Because [ [inlinepage] ] isn't separated by a blank line it gets treated as a block-level element. Hmm, will this stop all formatting, including *'s to em-tags? --[[JeroenSchot]]
+
+ Ah didn't realize you meant it fixed it at the markdown level. I'll
+ think about making [[postprocessordirective]]s into
+ [[preprocessordirective]]s instead, then I could use that fix (but I'm not
+ sure how feasible it is to do that). --[[Joey]]
+
+ Done.. inlining is now a preprocessor directive, happens before
+ markdown, and the inlinepage template uses div as suggested, this does
+ prevent markdown from doing any annoying escaping of the preprocessor
+ directives, as well as preventing it wrapping subpages in &lt;p&gt;.
+ --[[Joey]]
+
+This page is now valid.
+Test: [validate this page](http://validator.w3.org/check?url=referer)