1.
You will need a database to store your articles and some other stuff, with tables for
article
section
pub
article contains the full article, possibly in both plain text (for searching) and markup version, headline, author, first_published. Possibly also contains the short version of articles needed for publishing, and if you need this, what you do is add a type field which can be either 'article' or 'intro'.
section contains sections by category, such as start, culture, sport.
pub contains the publishing of an article, i.e. the short version which provides the link to the full thing. So here you need publishing start and end dates, section in which it appears (start, culture, sport etc). However, no text is found here. That, you either store separately from the full article in the article table, if your editors/publisher writes the short version separately, or you use the full article's plain text to get the first N characters.
When you say "readable by web crawler", are you talking about SEO? Everything is web crawlable, as long your resources are retrievable with form submits or XHR
edit: Everything is web crawlable. The sentence above should have referred to SE bots, and it should also have been withOUT form submits.
I don't know a whole lot about SEO, but you should update your title tag to reflect the current section or article, use URIs on the form example.com/article_id/The_actual_headline_of_the_article.
As for the purpose of SEO, the intros to the full articles would benefit from being presented to the user via the :hover pseudo-element, rather than an onmouseover event.
- DOM is probably the easiest way to go. XSLT would be another, which you can either deal with through XSLTProcessor, or let the browser handle the transformation. Either way, here's more info on XSLT