hmml_to_html.c: Coloured authors [#3]
This commit is contained in:
parent
f7181c1877
commit
f4217d5057
|
@ -97,6 +97,41 @@ StringsDiffer(char *A, char *B)
|
|||
return *A - *B;
|
||||
}
|
||||
|
||||
int
|
||||
CharToColour(char Char)
|
||||
{
|
||||
if(Char >= 'a' && Char <= 'z')
|
||||
{
|
||||
return (((float)Char - 'a') / ('z' - 'a') * 0xFFFFFF);
|
||||
}
|
||||
else if(Char >= 'A' && Char <= 'Z')
|
||||
{
|
||||
return (((float)Char - 'A') / ('Z' - 'A') * 0xFFFFFF);
|
||||
}
|
||||
else if(Char >= '0' && Char <= '9')
|
||||
{
|
||||
return (((float)Char - '0') / ('9' - '0') * 0xFFFFFF);
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0x777777;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
StringToColourHash(char *String)
|
||||
{
|
||||
int Result = 0;
|
||||
|
||||
int i;
|
||||
for(i = 0; String[i]; ++i)
|
||||
{
|
||||
Result += CharToColour(String[i]);
|
||||
}
|
||||
|
||||
return Result / i;
|
||||
}
|
||||
|
||||
int
|
||||
main(int ArgC, char **Args)
|
||||
{
|
||||
|
@ -139,7 +174,7 @@ main(int ArgC, char **Args)
|
|||
|
||||
if(HMML.well_formed)
|
||||
{
|
||||
ClaimBuffer(MemoryArena, &ClaimedMemory, &Working, 1024);
|
||||
ClaimBuffer(MemoryArena, &ClaimedMemory, &Working, 1024 * 4);
|
||||
|
||||
sprintf(Working.Location,
|
||||
"<html>\n"
|
||||
|
@ -223,6 +258,19 @@ HMML.annotations[AnnotationIndex].time);
|
|||
" <div class=\"marker");
|
||||
CopyBuffer(&Working, &Out);
|
||||
|
||||
ClaimBuffer(MemoryArena, &ClaimedMemory, &Text, 1024);
|
||||
int Inc = 0;
|
||||
|
||||
if(HMML.annotations[AnnotationIndex].author)
|
||||
{
|
||||
sprintf(Working.Location, " authored");
|
||||
CopyBuffer(&Working, &Out);
|
||||
|
||||
Inc = sprintf(Text.Ptr, "<span class=\"author\" style=\"color: #%X;\">%s</span> ",
|
||||
StringToColourHash(HMML.annotations[AnnotationIndex].author), HMML.annotations[AnnotationIndex].author);
|
||||
Text.Ptr += Inc;
|
||||
}
|
||||
|
||||
if(HMML.annotations[AnnotationIndex].marker_count)
|
||||
{
|
||||
for(int MarkerIndex = 0; MarkerIndex < HMML.annotations[AnnotationIndex].marker_count; ++MarkerIndex)
|
||||
|
@ -241,8 +289,6 @@ HMML.annotations[AnnotationIndex].time);
|
|||
|
||||
InPtr = HMML.annotations[AnnotationIndex].text;
|
||||
|
||||
ClaimBuffer(MemoryArena, &ClaimedMemory, &Text, 256);
|
||||
|
||||
if(HMML.annotations[AnnotationIndex].reference_count) // || HMML.annotations[AnnotationIndex].is_quote)
|
||||
{
|
||||
sprintf(Working.Location, " data-ref=\"%d\"", AnnotationIndex);
|
||||
|
@ -255,7 +301,6 @@ HMML.annotations[AnnotationIndex].time);
|
|||
*Text.Ptr++ = *InPtr++;
|
||||
}
|
||||
|
||||
int Inc = 0;
|
||||
if(HMML.annotations[AnnotationIndex].references[RefLocalIndex].offset <= 2)
|
||||
{
|
||||
if(HMML.annotations[AnnotationIndex].references[RefLocalIndex].page)
|
||||
|
@ -291,7 +336,6 @@ HMML.annotations[AnnotationIndex].time);
|
|||
Text.Ptr += Inc;
|
||||
++DataRef;
|
||||
}
|
||||
CopyStringToBuffer(InPtr, &Text);
|
||||
}
|
||||
|
||||
*Out.Ptr++ = '>';
|
||||
|
|
|
@ -44,20 +44,23 @@
|
|||
.marker:hover.blackboard > .content {
|
||||
background-color: #FFF8E7;
|
||||
background-size: 12px 12px;
|
||||
background-image: linear-gradient(to right, rgba(51, 153, 255, .16) 1px, transparent 1px), linear-gradient(to bottom, rgba(51, 153, 255, .16) 1px, transparent 1px);
|
||||
background-image: linear-gradient(to right , rgba(51, 153, 255, .16) 1px, transparent 1px),
|
||||
linear-gradient(to bottom, rgba(51, 153, 255, .16) 1px, transparent 1px);
|
||||
}
|
||||
|
||||
.marker:hover.blackboard .faded .content {
|
||||
background-color: rgba(42, 49, 114, 0.7);
|
||||
background-size: 12px 12px;
|
||||
background-image: linear-gradient(to right, rgba(0, 0, 0, .16) 1px, transparent 1px), linear-gradient(to bottom, rgba(0, 0, 0, .16) 1px, transparent 1px);
|
||||
background-image: linear-gradient(to right , rgba(0, 0, 0, .16) 1px, transparent 1px),
|
||||
linear-gradient(to bottom, rgba(0, 0, 0, .16) 1px, transparent 1px)
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.marker.blackboard > .content {
|
||||
background-color: #FFFFFF;
|
||||
background-size: 12px 12px;
|
||||
background-image: linear-gradient(to right, rgba(51, 153, 255, .16) 1px, transparent 1px), linear-gradient(to bottom, rgba(51, 153, 255, .16) 1px, transparent 1px);
|
||||
background-image: linear-gradient(to right , rgba(51, 153, 255, .16) 1px, transparent 1px),
|
||||
linear-gradient(to bottom, rgba(51, 153, 255, .16) 1px, transparent 1px);
|
||||
color: black;
|
||||
}
|
||||
|
||||
|
@ -68,10 +71,19 @@
|
|||
.marker.blackboard .progress .content {
|
||||
background-color: #2A3172;
|
||||
background-size: 12px 12px;
|
||||
background-image: linear-gradient(to right, rgba(255, 255, 255, .16) 1px, transparent 1px), linear-gradient(to bottom, rgba(255, 255, 255, .16) 1px, transparent 1px);
|
||||
background-image: linear-gradient(to right , rgba(255, 255, 255, .16) 1px, transparent 1px),
|
||||
linear-gradient(to bottom, rgba(255, 255, 255, .16) 1px, transparent 1px);
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.marker.authored .content .author {
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.marker.authored {
|
||||
font-style: oblique;
|
||||
}
|
||||
|
||||
/* MANDATORY */
|
||||
|
||||
.player_container {
|
||||
|
|
Loading…
Reference in New Issue