|
Hi Chris,
I was looking at the latest book chapter from Wrox earlier, and was wondering if you could put a TOC at the top of the article - it was thought that inspired me to write the HTML TOC Generator program in the first place in fact. I think it would make the article a lot easier to navigate.
Just a thought ...
--
Andrew
|
|
|
|
|
Good idea. I'm kinda treading water at the moment just trying to keep up with getting articles up there in the first place, so something like this may take a bit to get done.
cheers,
Chris Maunder (CodeProject)
|
|
|
|
|
Love the idea, but why don't the authors put in their own TOC? As you already know it is really simply to create a TOC in HTML and CP could have a few simple CSS styles and guidelines which people use to create their TOCs.
Maybe, havent checked your HTML TOC Generator out yet, have as part of the Article submission wizard a button which runs the HTG against the article and generates it right there. Could even do it using a JavaScript function on the client side (good for Chris's servers).
Cool idea Andrew
regards,
Paul Watson
Bluegrass
Cape Town, South Africa
Do you Sonork? I do! 100.9903 Stormfront
"The greatest thing you will ever learn is to love, and be loved in return" - Moulin Rouge
|
|
|
|
|
Paul Watson wrote:
why don't the authors put in their own TOC
I was in particular referring to the book chapters; for some I reason I thought Chris formatted those all himself, who knows? But for other articles it's a good point .
Paul Watson wrote:
have as part of the Article submission wizard a button which runs the HTG against the article and generates it right there
Nice idea - this is something I could work on if Chris wishes - the whole thing is a C# class so it would be easy to do, presuming .NET was installed on the server (Chris?)
Thanks !
--
Andrew.
|
|
|
|
|
I love love LOVE the Javascript-based discussion-board software you're using throughout CodeProject. Makes it super-quick and easy to read through discussion threads.
However, one of the problems with such solutions, of course, is that if I navigate away from the discussion page to any other page, and then navigate back to the discussion page (with the Back or Forward buttons), the page doesn't remember which message was open when I left. Plain HTML-based discussion boards don't have this problem (but then again, plain HTML-based discussion boards suck.)
For IE 5 and above, there's a solution: the saveHistory behavior. This allows you CodeProject guys, with almost no effort on your part, to have the browser re-open whatever message was open when they left the page.
For a sample of what I'm talking about, see http://www.morearty.com/history.htm -- this is a little sample I whipped up. You can move the blue box around the page; then navigate away from the page; then, when you navigate back to the page, the blue box will be where you last left it, instead of having been repositioned back to its starting position.
You could probably pretty easily apply the same behavior to the HTML you use for your message threads.
Mike Morearty
mike@morearty.com
http://www.morearty.com
|
|
|
|
|
This has gone on the TODO list. Nice one!
cheers,
Chris Maunder (CodeProject)
|
|
|
|
|
I seem to have an intermittent problem when accessing CP threads. Every so often when I expand a message after about 2 secs, IE switches to a "This page cannot be found" or equivalent It seems that the page is trying to switch to a different ad which is not found. Basically this makes the board practiacally unreadable as you only have 2 seconds to read that post..
Is anybosy else affected by this or is it just me?
Roger Allen the man
|
|
|
|
|
Yup
its happnd to me a few times
I think its somethin to do with bandwidth
When my connection gets slow, this happens quite often and when I hit the back-button it has gotta load the entire page
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
Nish is a BIG fan of Goran Ivanisevic
|
|
|
|
|
Stop your browser from stopping on errors (Tools-Options-Advanced). Disable script debugging and notification on errors (loads of Ads are error prone).
Ok so you run the risk of missing 'Lucy Linda wants to see you at her very own site' adverts, but thats a price we must pay.
We do it for the joy of seeing the users struggle.
|
|
|
|
|
I don't know if my problem is related but, its really annoying that some ad banners on this site are loaded from external sites (like the Dundas advert http://www.dundas.com/products/mfc/grid/images/Grid5Banner.gif)
It is annoying since over here we have a firewall which only allows access to certain sites, and www.dundas.com is not one of them, so every now and then I get an Access denies message.
(2b || !2b)
|
|
|
|
|
Chris, how about a Reply with quote button. Many times when editing a reply you will quote the previous posting, so an automatism would be very helpful. I suggest following format:
Thomas Freudenberg wrote: Chris, how about a Reply with quote button. Many times when editing a reply you will quote the previous posting, so an automatism would be very helpful. I suggest following format:
<blockquote><hr><small>
<b><a href="/script/profile/whos_who.asp?id=4960" target="_blank">Thomas Freudenberg</a> wrote:</b>
<br>
Chris, how about a <i>Reply with quote</i> button. Many times when editing
a reply you will quote the previous posting, so an automatism would be very helpful. I
suggest following format:
</small><hr></blockquote>
Regards
Thomas
Disclaimer: Because of heavy processing requirements, we are currently using some of your unused brain capacity for backup processing. Please ignore any hallucinations, voices or unusual dreams you may experience. Please avoid concentration-intensive tasks until further notice. Thank you.
|
|
|
|
|
I don't know if that is a good thing. Having it quote the entire message would lead to a lot of having to read through the same comments a lot of times in the different messages. I prefer just to quote the relevant part I'm replying to. Imagine the last message in a thread having the entire message made up of the entire thread plus a me too response.
Michael
|
|
|
|
|
Michael P Butler wrote: I prefer just to quote the relevant part I'm replying to.
And so I do
I know that trusting in the user's discipline to quote relevant parts only is too naive. Of course we must find a compromise between easy quoting and completely quoted threads.
Regards
Thomas
Disclaimer: Because of heavy processing requirements, we are currently using some of your unused brain capacity for backup processing. Please ignore any hallucinations, voices or unusual dreams you may experience. Please avoid concentration-intensive tasks until further notice. Thank you.
|
|
|
|
|
Why not have it so that the user has to highlight the text they want to quote and then click a Quote button which inserts the highlighted text with the Quote formatting into the text box.
If they don't highlight any text then nothing happens when they click the button (or it pops up a message saying "Highlight some text, please").
regards,
Paul Watson
Bluegrass
Cape Town, South Africa
Do you Sonork? I do! 100.9903 Stormfront
"The greatest thing you will ever learn is to love, and be loved in return" - Moulin Rouge
|
|
|
|
|
If you can work out the javascript that copies the selected text and pastes it into the edit window then you're a better man than I! (spent many hours trying to do exactly this - am I missing something simple?)
cheers,
Chris Maunder (CodeProject)
|
|
|
|
|
If you can work out the javascript that copies the selected text and pastes it into the edit window then you're a better man than I!
You should not set yourself up like that because...
Tada! Get selected text example
The trick is not so simple. Basically you have to create a textRange object and then pull the value from there.
Here is an example (very simple and quick):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script language="JavaScript">
function getSel()
{
if (document.getSelection) txt = document.getSelection();
else if (document.selection) txt = document.selection.createRange().text;
else return;
if (txt !== ""){
txtReply.value = "<HR><I>" + txt.replace(new RegExp('([\\f\\n\\r\\t\\v ])+', 'g')," ") + "</I><HR>";
}
else
{
alert('You must please select some text to quote');
}
}
</script>
</head>
<body>
<DIV id="divOriginalPost">This is the original post, select some text and then click the quote button</DIV>
<TEXTAREA id="txtReply" COLS="40" ROWS="10"></TEXTAREA>
<INPUT type="Button" onclick="getSel()" id="cmdQuote" value="Quote">
</body>
</html>
It can be made to work in Netscape. We had to do this for an intranet project and it was a pain to figure out. Luckily that link I posted above helped a lot
I still don't feel a better man than you though.
regards,
Paul Watson
Bluegrass
Cape Town, South Africa
Do you Sonork? I do! 100.9903 Stormfront
"The greatest thing you will ever learn is to love, and be loved in return" - Moulin Rouge
|
|
|
|
|
Thanks Paul, thanks Mike!
The quote button is in.
cheers,
Chris Maunder (CodeProject)
|
|
|
|
|
*highlight text*
*click quote*
Chris Maunder wrote:
Thanks Paul, thanks Mike!
The quote button is in.
Ooooohhhhh
Now all we need is a "Generate rational, intelligent and rallying counter arguement" button...
regards,
Paul Watson
Bluegrass
Cape Town, South Africa
Do you Sonork? I do! 100.9903 Stormfront
"The greatest thing you will ever learn is to love, and be loved in return" - Moulin Rouge
|
|
|
|
|
Here's code that will append the current selection to the end of the textarea's contents. I couldn't figure out how to insert it at the current caret position (or even how to get the caret position).
Button1 = your Paste button, Text1 = the text box.
function Button1_onclick() {
var seltext = document.selection.createRange().text;
if ( seltext != "" )
Text1.value += seltext;
}
--Mike--
http://home.inreach.com/mdunn/
#include "witty_sig.h"
your with and
|
|
|
|
|
I couldn't figure out how to insert it at the current caret position (or even how to get the caret position).
I noticed that when inserting emoticons on CP it also just puts it at the end of the text, not where the cursor is.
However, seeing as focus is passed to the Quote button would there be a cursor (caret) position to get? I guess onblur of the textbox you could record the last caret position and use that. Then when you click the Quote button it uses the caret variable as the position... hmmm might work.
brb, trying it out
regards,
Paul Watson
Bluegrass
Cape Town, South Africa
Do you Sonork? I do! 100.9903 Stormfront
"The greatest thing you will ever learn is to love, and be loved in return" - Moulin Rouge
|
|
|
|
|
Paul Watson wrote:
I guess onblur of the textbox you could record the last caret position and use that. Then when you click the Quote button it uses the caret variable as the position... hmmm might work.
brb, trying it out
Any luck?
cheers,
Chris Maunder (CodeProject)
|
|
|
|
|
Chris Maunder wrote:
Any luck?
Here it is Chris. Once again not all my work, got it from FAQTs - Knowledge Base.
I took your new Quote code and put in the other code.
Once again it uses the TextRange object and then the CharAt method.
You may have to do a few more tests than I did on recording the caret position from the TEXTAREA as I have only covered OnClick and OnKeyPress. (Avoid the OnBlur, something odd happens)
You could also use the functions for inserting the Emoticons! That would be nice
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<script language='JavaScript'>
<!--
function QuoteText(author)
{
var txt = "";
if (document.getSelection) txt = document.getSelection();
else if (document.selection) txt = document.selection.createRange().text;
else return;
var emph = false;
emph = true
var TextArea = txtReply;
if (txt !== "") {
var text = "";
var length = text.length;
if (length > 0 && text.charAt(length-1) != "\n") text += "\n\n";
text += (author + " wrote:\n");
if (emph) text += "<i>";
text += txt;
if (emph) text += "</i>";
text += "\n\n";
insertAtCaret(TextArea, text);
TextArea.focus();
}
else
alert('You did not select any text to quote');
}
function storeCaret (textEl)
{
if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}
function insertAtCaret (textEl, text)
{
if (textEl.createTextRange && textEl.caretPos)
{
var caretPos = textEl.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
}
else textEl.value = text;
}
</script>
<body>
<DIV id="divOriginal" style="padding: 5px; width: 400px; border: 1px solid #cccccc">
Colin Davies wrote:
Yeah the quote button is a cool idea<BR><BR>
Thank Paul Watson and Mike Dunn for the kick in the bum to get this feature added.<BR><BR>
cheers,<BR>
Chris Maunder (CodeProject)
</DIV>
<BR><INPUT type="Button" name="cmdQuote" value="Quote that!" onclick="QuoteText('Bob');"><BR><BR>
<TEXTAREA name="txtReply" id="txtReply"
rows="20" cols="47"
style="width: 400px;"
onclick="storeCaret(this);"
onkeypress="storeCaret(this);" ></TEXTAREA>
</body>
</html>
regards,
Paul Watson
Bluegrass
Cape Town, South Africa
Do you Sonork? I do! 100.9903 Stormfront
"The greatest thing you will ever learn is to love, and be loved in return" - Moulin Rouge
|
|
|
|
|
Thanks Paul!
I had a go at this but it didn't seem to be consistently saving the carrot position. I'll have a second attempt later.
cheers,
Chris Maunder (CodeProject)
|
|
|
|
|
Hmmm, in what instances doesn't it record the caret position? I will have a look at it and fiddle.
(lame joke alert!) I may call Bugs Bunny, he is good with carrots...
Chris Maunder wrote:
cheers,
Chris Maunder (CodeProject)
Damn I like clicking that button...
regards,
Paul Watson
Bluegrass
Cape Town, South Africa
Do you Sonork? I do! 100.9903 Stormfront
"The greatest thing you will ever learn is to love, and be loved in return" - Moulin Rouge
|
|
|
|
|
I only had a brief time to play and it seemed semi-random. I'll have to sit down and really thrash it out.
cheers,
Chris Maunder (CodeProject)
|
|
|
|