hmml_to_html.c: Sanitise the refs menu [#15]
Also update hmmlib.h for the new marker parameter
This commit is contained in:
		
							parent
							
								
									c31b486cfa
								
							
						
					
					
						commit
						678dc869c5
					
				
										
											Binary file not shown.
										
									
								
							|  | @ -23,6 +23,12 @@ typedef struct | |||
|     int  Size; | ||||
| } buffer; | ||||
| 
 | ||||
| typedef struct | ||||
| { | ||||
|     char *Source; | ||||
|     char *RefTitle; | ||||
| } ref_info; | ||||
| 
 | ||||
| void | ||||
| ClaimBuffer(char *MemoryArena, int *ClaimedMemory, buffer *Buffer, int Size) | ||||
| { | ||||
|  | @ -32,6 +38,30 @@ ClaimBuffer(char *MemoryArena, int *ClaimedMemory, buffer *Buffer, int Size) | |||
|     Buffer->Ptr = Buffer->Location; | ||||
| } | ||||
| 
 | ||||
| ref_info | ||||
| ParseRef(HMML_Reference RefInput) | ||||
| { | ||||
|     ref_info Info; | ||||
|     if(RefInput.author) | ||||
|     { | ||||
|         Info.Source = RefInput.author; | ||||
|         Info.RefTitle = RefInput.title; | ||||
|         return Info; | ||||
|     } | ||||
|     else if(RefInput.page) | ||||
|     { | ||||
|         Info.Source = RefInput.site; | ||||
|         Info.RefTitle = RefInput.page; | ||||
|         return Info; | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         Info.Source = ""; | ||||
|         Info.RefTitle = RefInput.site; | ||||
|         return Info; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| int | ||||
| TimecodeToSeconds(char *Timecode) | ||||
| { | ||||
|  | @ -207,6 +237,7 @@ main(int ArgC, char **Args) | |||
|                     { | ||||
|                         for(int i = 0; i < HMML.annotations[AnnotationIndex].reference_count; ++i) | ||||
|                         { | ||||
|                             HMML_Reference *CurrentRef = HMML.annotations[AnnotationIndex].references + i; | ||||
|                             // NOTE(matt): Consider removing the ref_index class if it ain't needed
 | ||||
|                             sprintf(Working.Location, | ||||
| "                    <a data-id=\"%d\" href=\"%s\" target=\"_blank\" class=\"ref\">\n" | ||||
|  | @ -222,9 +253,9 @@ main(int ArgC, char **Args) | |||
| "                        </div>\n" | ||||
| "                    </a>\n", | ||||
| AnnotationIndex, | ||||
| HMML.annotations[AnnotationIndex].references[i].url, | ||||
| HMML.annotations[AnnotationIndex].references[i].site ? HMML.annotations[AnnotationIndex].references[i].site : HMML.annotations[AnnotationIndex].references[i].author, | ||||
| HMML.annotations[AnnotationIndex].references[i].page ? HMML.annotations[AnnotationIndex].references[i].page : HMML.annotations[AnnotationIndex].references[i].title, | ||||
| CurrentRef->url, | ||||
| ParseRef(*CurrentRef).Source, | ||||
| ParseRef(*CurrentRef).RefTitle, | ||||
| TimecodeToSeconds(HMML.annotations[AnnotationIndex].time), | ||||
| ReferenceIndex, | ||||
| HMML.annotations[AnnotationIndex].time); | ||||
|  | @ -275,7 +306,7 @@ HMML.annotations[AnnotationIndex].time); | |||
|                 { | ||||
|                     for(int MarkerIndex = 0; MarkerIndex < HMML.annotations[AnnotationIndex].marker_count; ++MarkerIndex) | ||||
|                     { | ||||
|                         if(!StringsDiffer("blackboard", HMML.annotations[AnnotationIndex].markers[MarkerIndex].text) && | ||||
|                         if(!StringsDiffer("blackboard", HMML.annotations[AnnotationIndex].markers[MarkerIndex].marker) && | ||||
|                                 HMML.annotations[AnnotationIndex].markers[MarkerIndex].type == HMML_CATEGORY) | ||||
|                         { | ||||
|                             sprintf(Working.Location, " blackboard"); | ||||
|  |  | |||
|  | @ -40,7 +40,8 @@ typedef enum { | |||
| 
 | ||||
| typedef struct { | ||||
| 	HMML_MarkerType type; | ||||
| 	char* text; | ||||
| 	char* marker; | ||||
| 	char* parameter; | ||||
| 	int offset; | ||||
| } HMML_Marker; | ||||
| 
 | ||||
|  |  | |||
|  | @ -84,6 +84,27 @@ | |||
|     font-style: oblique; | ||||
| } | ||||
| 
 | ||||
| .marker .content .categories { | ||||
|     display: inline-block; | ||||
| } | ||||
| 
 | ||||
| .marker .content .categories .category { | ||||
|     border: 1px; | ||||
|     border-radius: 50%; | ||||
|     height: 6px; | ||||
|     width: 6px; | ||||
| } | ||||
| 
 | ||||
| .category.memory { | ||||
|     border-color: #3399FF; | ||||
|     background: #3399FF; | ||||
| } | ||||
| 
 | ||||
| .category.hardware { | ||||
|     border-color: #FF3333; | ||||
|     background: #FF3333; | ||||
| } | ||||
| 
 | ||||
| /* MANDATORY */ | ||||
| 
 | ||||
| .player_container { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue