فهرست منبع

Several broken links fixed in online documentation (#1695)

* Documentation: Hubspot template changed

* Documentation: Title of website documentation is now a parameter in the Hubspot template.

* Documentation: Hubspot template changed

* Documentation: links on website fixed

* Documentation: build path fixed

* Documentation: most broken links in the online documentation fixed.

* Documentation: more links fixed

* Documentation: Hubspot template changed

* Documentation: URLs to be excluded fixed in link checker script
Rainer Klute 8 سال پیش
والد
کامیت
e23b60e9a6
20فایلهای تغییر یافته به همراه313 افزوده شده و 109 حذف شده
  1. 1 1
      plugins/org.yakindu.sct.doc.user/.externalToolBuilders/Documentation Builder.launch
  2. 16 2
      plugins/org.yakindu.sct.doc.user/build.xml
  3. 1 1
      plugins/org.yakindu.sct.doc.user/misc/checkLinks_w3c.sh
  4. 2 2
      plugins/org.yakindu.sct.doc.user/src/main/java/org/yakindu/sct/doc/user/wikitext/Heading.java
  5. 125 7
      plugins/org.yakindu.sct.doc.user/src/main/java/org/yakindu/sct/doc/user/wikitext/HubspotDocumentBuilder.java
  6. 0 1
      plugins/org.yakindu.sct.doc.user/src/main/java/org/yakindu/sct/doc/user/wikitext/TableOfContentsBuilder.java
  7. 49 5
      plugins/org.yakindu.sct.doc.user/src/main/java/org/yakindu/sct/doc/user/wikitext/TextileToHubspotConverter.java
  8. 46 0
      plugins/org.yakindu.sct.doc.user/src/test/resources/testdata.textile
  9. 1 1
      plugins/org.yakindu.sct.doc.user/src/tutorials/tutorials.textile
  10. 3 3
      plugins/org.yakindu.sct.doc.user/src/user-guide/editing_statecharts.textile
  11. 3 3
      plugins/org.yakindu.sct.doc.user/src/user-guide/generating_code.textile
  12. 3 3
      plugins/org.yakindu.sct.doc.user/src/user-guide/generating_code_headless.textile
  13. 1 1
      plugins/org.yakindu.sct.doc.user/src/user-guide/glossary.textile
  14. 1 1
      plugins/org.yakindu.sct.doc.user/src/user-guide/overview.textile
  15. 11 11
      plugins/org.yakindu.sct.doc.user/src/user-guide/sctunit.textile
  16. 1 1
      plugins/org.yakindu.sct.doc.user/src/user-guide/simulating_statecharts.textile
  17. 3 3
      plugins/org.yakindu.sct.doc.user/src/user-guide/statechart_language.textile
  18. 24 35
      plugins/org.yakindu.sct.doc.user/src/website/YSCT-documentation-template.htmlf
  19. 3 1
      plugins/org.yakindu.sct.doc.user/src/website/p1.htmlf
  20. 19 27
      plugins/org.yakindu.sct.doc.user/src/website/p3.htmlf

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 1
plugins/org.yakindu.sct.doc.user/.externalToolBuilders/Documentation Builder.launch


+ 16 - 2
plugins/org.yakindu.sct.doc.user/build.xml

@@ -137,6 +137,18 @@
             <files dir="${lib.dir}/bin" layout="{groupId}/{artifactId}-{baseVersion}.{extension}" />
             <files dir="${lib.dir}/bin" layout="{groupId}/{artifactId}-{baseVersion}.{extension}" />
         </artifact:resolve>
         </artifact:resolve>
 
 
+        <!-- Sources of MyLyn Wikitext's Textile support: -->
+        <artifact:resolve>
+            <artifact:dependencies>
+                <dependency groupId="org.eclipse.mylyn.docs"
+                            artifactId="org.eclipse.mylyn.wikitext.textile"
+                            version="${wikitext.version}"
+                            scope="compile"
+                            classifier="sources" />
+            </artifact:dependencies>
+            <files dir="${lib.dir}/src" layout="{groupId}/{artifactId}-{baseVersion}-{classifier}.{extension}" />
+        </artifact:resolve>
+
         <!-- Classpath for MyLyn Wikitext's Ant support: -->
         <!-- Classpath for MyLyn Wikitext's Ant support: -->
         <artifact:resolve>
         <artifact:resolve>
             <artifact:dependencies>
             <artifact:dependencies>
@@ -345,7 +357,7 @@
             <taskdef classpathref="wikitext.all.classpath" resource="org/eclipse/mylyn/wikitext/ant/tasks.properties" />
             <taskdef classpathref="wikitext.all.classpath" resource="org/eclipse/mylyn/wikitext/ant/tasks.properties" />
 
 
             <!-- Tutorials -->
             <!-- Tutorials -->
-            <create-website-part name="YSCT-tutorials" title="YAKINDU Statechart Tools Tutorials">
+            <create-website-part name="YSCT-tutorials" title="Tutorials">
                 <textile-files>
                 <textile-files>
                     <filelist dir="${src.dir}">
                     <filelist dir="${src.dir}">
                         <file name="tutorials/tutorials.textile" />
                         <file name="tutorials/tutorials.textile" />
@@ -359,7 +371,7 @@
             </create-website-part>
             </create-website-part>
 
 
             <!-- User Guide -->
             <!-- User Guide -->
-            <create-website-part name="YSCT-user-guide" title="YAKINDU Statechart Tools User Guide">
+            <create-website-part name="YSCT-user-guide" title="User Guide">
                 <textile-files>
                 <textile-files>
                     <filelist dir="${src.dir}">
                     <filelist dir="${src.dir}">
                         <file name="user-guide/overview.textile" />
                         <file name="user-guide/overview.textile" />
@@ -444,6 +456,8 @@
                 <arg value="${work.dir}/${index.textile}" />
                 <arg value="${work.dir}/${index.textile}" />
                 <arg value="--output" />
                 <arg value="--output" />
                 <arg value="${work.dir}/${index.html}" />
                 <arg value="${work.dir}/${index.html}" />
+                <arg value="--property" />
+                <arg value="${navigation.title}=@{title}" />
             </java>
             </java>
 
 
             <!-- Replace "<pre><code>" durch "<pre class="prettyprint"><code>": -->
             <!-- Replace "<pre><code>" durch "<pre class="prettyprint"><code>": -->

+ 1 - 1
plugins/org.yakindu.sct.doc.user/misc/checkLinks_w3c.sh

@@ -65,7 +65,7 @@ elif [ "${target}" == "web" ]
 then
 then
     checklink --broken --dir-redirects \
     checklink --broken --dir-redirects \
 	--recursive --depth 1 \
 	--recursive --depth 1 \
-	--exclude https://github.com/Yakindu/.* \
+	--exclude 'https://github.com/Yakindu/.*|http://groups.google.com/.*|javascript:.*|tel:.*|mailto:.*|https://cta-redirect.hubspot.com/' \
 	https://www.itemis.com/en/yakindu/state-machine/documentation/user-guide/ \
 	https://www.itemis.com/en/yakindu/state-machine/documentation/user-guide/ \
         2>&1 | tee log.txt
         2>&1 | tee log.txt
 else
 else

+ 2 - 2
plugins/org.yakindu.sct.doc.user/src/main/java/org/yakindu/sct/doc/user/wikitext/Heading.java

@@ -95,10 +95,10 @@ public class Heading {
         final StringBuilder b = new StringBuilder();
         final StringBuilder b = new StringBuilder();
         b.append("Heading[level=");
         b.append("Heading[level=");
         b.append(level);
         b.append(level);
-        b.append(", text=");
-        b.append(title);
         b.append(", id=");
         b.append(", id=");
         b.append(id);
         b.append(id);
+        b.append(", text=");
+        b.append(title);
         b.append(", resource=");
         b.append(", resource=");
         b.append(resource);
         b.append(resource);
         b.append("]");
         b.append("]");

+ 125 - 7
plugins/org.yakindu.sct.doc.user/src/main/java/org/yakindu/sct/doc/user/wikitext/HubspotDocumentBuilder.java

@@ -8,8 +8,10 @@ import java.io.Writer;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.ListIterator;
 import java.util.ListIterator;
+import java.util.Map;
 
 
 import org.eclipse.mylyn.wikitext.parser.Attributes;
 import org.eclipse.mylyn.wikitext.parser.Attributes;
+import org.eclipse.mylyn.wikitext.parser.LinkAttributes;
 import org.eclipse.mylyn.wikitext.parser.builder.HtmlDocumentBuilder;
 import org.eclipse.mylyn.wikitext.parser.builder.HtmlDocumentBuilder;
 
 
 /**
 /**
@@ -123,17 +125,19 @@ public class HubspotDocumentBuilder extends HtmlDocumentBuilder {
 	 * Constructor. Reads all the required static files and template files.
 	 * Constructor. Reads all the required static files and template files.
 	 * </p>
 	 * </p>
 	 * 
 	 * 
+	 * @param properties
+	 * 
 	 * @param pass1Headings
 	 * @param pass1Headings
 	 */
 	 */
 	public HubspotDocumentBuilder(final Reader p1Reader, final Reader contentsTemplateReader, final Reader p2Reader,
 	public HubspotDocumentBuilder(final Reader p1Reader, final Reader contentsTemplateReader, final Reader p2Reader,
-			final Reader tocTemplateReader, final Reader p3Reader, final List<Heading> pass1Headings,
-			final Writer writer) {
+			final Reader tocTemplateReader, final Reader p3Reader, final Map<String, String> properties,
+			final List<Heading> pass1Headings, final Writer writer) {
 		super(writer, true);
 		super(writer, true);
 		this.pass1Headings = pass1Headings;
 		this.pass1Headings = pass1Headings;
 		try {
 		try {
-			this.p1 = readContents(p1Reader, false);
-			this.p2 = readContents(p2Reader, false);
-			this.p3 = readContents(p3Reader, false);
+			this.p1 = resolveProperties(readContents(p1Reader, false), properties);
+			this.p2 = resolveProperties(readContents(p2Reader, false), properties);
+			this.p3 = resolveProperties(readContents(p3Reader, false), properties);
 		} catch (IOException e) {
 		} catch (IOException e) {
 			throw new RuntimeException("Reading one the p files failed.", e);
 			throw new RuntimeException("Reading one the p files failed.", e);
 		}
 		}
@@ -153,6 +157,28 @@ public class HubspotDocumentBuilder extends HtmlDocumentBuilder {
 			w = new PrintWriter(writer);
 			w = new PrintWriter(writer);
 	}
 	}
 
 
+	/**
+	 * <p>
+	 * Replaces all occurrences of the <var>properties</var> map's "key" entries
+	 * in a string by the corresponding "value" entries. Replacement starts at
+	 * the beginning of the string and proceeds to the end. However, the
+	 * processing order of the properties is undefined.
+	 * </p>
+	 * 
+	 * @param s
+	 *            the string to do the replacements in
+	 * @param properties
+	 *            the properties map
+	 * @return the resulting string with all replacements done
+	 */
+	private String resolveProperties(final String s, final Map<String, String> properties) {
+		String result = s;
+		for (final String key : properties.keySet()) {
+			result = result.replace(key, properties.get(key));
+		}
+		return result;
+	}
+
 	/**
 	/**
 	 * <p>
 	 * <p>
 	 * When the beginning of the document is encountered the P1 part is written
 	 * When the beginning of the document is encountered the P1 part is written
@@ -248,8 +274,59 @@ public class HubspotDocumentBuilder extends HtmlDocumentBuilder {
 		if (isEarlySeparator) {
 		if (isEarlySeparator) {
 			if (!isProcessingHeading)
 			if (!isProcessingHeading)
 				h2.beginSpan(type, attributes);
 				h2.beginSpan(type, attributes);
-		} else
+		} else {
+			if (SpanType.LINK == type && attributes instanceof LinkAttributes) {
+				final LinkAttributes linkAttributes = (LinkAttributes) attributes;
+				String hrefOrHashName = linkAttributes.getHref();
+				if (hrefOrHashName.startsWith("../")) {
+					boolean hasHash = false;
+					boolean hasFragment = false;
+					boolean hasFilename = false;
+					final String fragmentID;
+
+					// Get the fragment ID:
+					int fragmentPosition = hrefOrHashName.lastIndexOf('#');
+					if (fragmentPosition >= 0) {
+						hasHash = true;
+						if (fragmentPosition + 1 < hrefOrHashName.length())
+							hasFragment = true;
+						fragmentPosition++;
+					} else
+						fragmentPosition = hrefOrHashName.length();
+					fragmentID = hrefOrHashName.substring(fragmentPosition);
+
+					// Strip the last component (filename) from the URL, if any:
+					final StringBuilder b = new StringBuilder();
+					int filenamePosition = hrefOrHashName.lastIndexOf('/', fragmentPosition - 1);
+					hasFilename = filenamePosition >= 2 && filenamePosition + 2 <= fragmentPosition;
+					if (hasFilename)
+						b.append(hrefOrHashName.substring(0, filenamePosition));
+					else
+						b.append(hrefOrHashName.substring(0, fragmentPosition - (hasHash ? 1 : 0)));
+
+					if (hasFilename)
+						b.append('/');
+					if (hasFragment) {
+						// Find the fragment's H1 heading:
+						final Heading h1Heading = lookupH1HeadingOf(pass1Headings, fragmentID);
+
+						// Append H1 heading's ID to the URL:
+						if (h1Heading != null)
+							b.append(h1Heading.getId());
+						else
+							System.err.println("WARNING: H1 heading for fragment #" + fragmentID + " not found.");
+
+						// Append fragment ID.
+						b.append('#');
+						b.append(fragmentID);
+					} else if (hasHash)
+						b.append('#');
+
+					linkAttributes.setHref(b.toString());
+				}
+			}
 			super.beginSpan(type, attributes);
 			super.beginSpan(type, attributes);
+		}
 	}
 	}
 
 
 	@Override
 	@Override
@@ -359,8 +436,9 @@ public class HubspotDocumentBuilder extends HtmlDocumentBuilder {
 	public void link(final Attributes attributes, final String hrefOrHashName, final String text) {
 	public void link(final Attributes attributes, final String hrefOrHashName, final String text) {
 		if (isEarlySeparator)
 		if (isEarlySeparator)
 			h2.link(attributes, hrefOrHashName, text);
 			h2.link(attributes, hrefOrHashName, text);
-		else
+		else {
 			super.link(attributes, hrefOrHashName, text);
 			super.link(attributes, hrefOrHashName, text);
+		}
 	}
 	}
 
 
 	@Override
 	@Override
@@ -505,6 +583,46 @@ public class HubspotDocumentBuilder extends HtmlDocumentBuilder {
 		return result;
 		return result;
 	}
 	}
 
 
+	/**
+	 * <p>
+	 * Looks up the H1 heading of a specified subheading. The method first looks
+	 * up the subheading in the list of headings and then walks back the list
+	 * until it finds the next H1. If it turns out that the subheading is a H1
+	 * heading itself, that heading will be returned.
+	 * </p>
+	 * 
+	 * @param headings
+	 *            The list of heading to search
+	 * @param subheading
+	 *            The subheading
+	 * @return The subheading's associated H1 heading in the list of headings or
+	 *         <code>null</code> if either one or the other cannot be found.
+	 */
+	private Heading lookupH1HeadingOf(final List<Heading> headings, final String subheadingID) {
+		final ListIterator<Heading> i = headings.listIterator(headings.size());
+
+		// Look up the subheading:
+		Heading subheading = null;
+		while (subheading == null && i.hasPrevious()) {
+			final Heading h = i.previous();
+			if (subheadingID.equals(h.getId()))
+				subheading = h;
+		}
+		if (subheading == null)
+			return null;
+		if (subheading.getLevel() == 1)
+			return subheading;
+
+		// Look up the H1 heading:
+		Heading h1Heading = null;
+		while (h1Heading == null && i.hasPrevious()) {
+			final Heading h = i.previous();
+			if (h.getLevel() == 1)
+				h1Heading = h;
+		}
+		return h1Heading;
+	}
+
 	/**
 	/**
 	 * <p>
 	 * <p>
 	 * Reads the complete contents of a {@link Reader} and returns it as a
 	 * Reads the complete contents of a {@link Reader} and returns it as a

+ 0 - 1
plugins/org.yakindu.sct.doc.user/src/main/java/org/yakindu/sct/doc/user/wikitext/TableOfContentsBuilder.java

@@ -1,6 +1,5 @@
 package org.yakindu.sct.doc.user.wikitext;
 package org.yakindu.sct.doc.user.wikitext;
 
 
-import java.io.Reader;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 

+ 49 - 5
plugins/org.yakindu.sct.doc.user/src/main/java/org/yakindu/sct/doc/user/wikitext/TextileToHubspotConverter.java

@@ -7,7 +7,9 @@ import java.io.IOException;
 import java.io.Reader;
 import java.io.Reader;
 import java.io.Writer;
 import java.io.Writer;
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 import java.util.Vector;
 import java.util.Vector;
 
 
 import org.eclipse.mylyn.wikitext.parser.MarkupParser;
 import org.eclipse.mylyn.wikitext.parser.MarkupParser;
@@ -36,6 +38,7 @@ public class TextileToHubspotConverter {
 		String p2Filename = null;
 		String p2Filename = null;
 		String tocTemplateFilename = null;
 		String tocTemplateFilename = null;
 		String p3Filename = null;
 		String p3Filename = null;
+		final Map<String, String> properties = new HashMap<String, String>();
 
 
 		/*
 		/*
 		 * Parse command-line parameters:
 		 * Parse command-line parameters:
@@ -70,6 +73,11 @@ public class TextileToHubspotConverter {
 				outFilename = args[++i];
 				outFilename = args[++i];
 				continue;
 				continue;
 			}
 			}
+			if (arg.equals("-p") || arg.equals("--property")) {
+				final String nameValue = args[++i];
+				addTo(properties, nameValue);
+				continue;
+			}
 		}
 		}
 		assertParameterIsSpecified(p1Filename, "P1 file not specified.");
 		assertParameterIsSpecified(p1Filename, "P1 file not specified.");
 		assertParameterIsSpecified(contentsTemplateFilename, "Contents template file not specified.");
 		assertParameterIsSpecified(contentsTemplateFilename, "Contents template file not specified.");
@@ -114,7 +122,7 @@ public class TextileToHubspotConverter {
 		final Reader p3 = createFileReader(p3Filename, "P3 file not found");
 		final Reader p3 = createFileReader(p3Filename, "P3 file not found");
 		final Writer out = new FileWriter(outFilename);
 		final Writer out = new FileWriter(outFilename);
 		final HubspotDocumentBuilder docBuilder = new HubspotDocumentBuilder(p1, contentsTemplate, p2, tocTemplate, p3,
 		final HubspotDocumentBuilder docBuilder = new HubspotDocumentBuilder(p1, contentsTemplate, p2, tocTemplate, p3,
-				headings, out);
+				properties, headings, out);
 
 
 		/*
 		/*
 		 * Concatenate all input files so that the Textile parser sees
 		 * Concatenate all input files so that the Textile parser sees
@@ -141,6 +149,41 @@ public class TextileToHubspotConverter {
 		out.close();
 		out.close();
 	}
 	}
 
 
+	/**
+	 * <p>
+	 * Add a name/value pair to a property map. The former is expected in the
+	 * form <code>name=value</code>. Leading or trailing white space around name
+	 * or value is removed. If the <code>=value</code> part or the
+	 * <code>value</code> part is missing, the <code>name</code> property will
+	 * be added with the value being the empty string. If the <code>name</code>
+	 * part is missing, a {@link RuntimeException} will be thrown.
+	 * </p>
+	 * 
+	 * @param properties
+	 *            the map to add the name/value pair to
+	 * @param nameValue
+	 *            the name/value pair
+	 */
+	private static void addTo(final Map<String, String> properties, final String nameValue) {
+		final int p = nameValue.indexOf('=');
+		final String name;
+		final String value;
+		if (p > 1) {
+			name = nameValue.substring(0, p);
+			if (p < nameValue.length() - 1)
+				value = nameValue.substring(p + 1);
+			else
+				value = "";
+		} else if (p == 0) {
+			value = nameValue.substring(1);
+			throw new RuntimeException("Name/value pair does not contain a name. Value: \"" + value + "\"");
+		} else {
+			name = nameValue;
+			value = "";
+		}
+		properties.put(name, value);
+	}
+
 	private static void assertParameterIsSpecified(final String p, final String msg) {
 	private static void assertParameterIsSpecified(final String p, final String msg) {
 		if (p == null || p.trim().isEmpty())
 		if (p == null || p.trim().isEmpty())
 			errorExit(msg);
 			errorExit(msg);
@@ -153,10 +196,11 @@ public class TextileToHubspotConverter {
 
 
 	private static void errorExit(final String msg) {
 	private static void errorExit(final String msg) {
 		System.err.println(msg);
 		System.err.println(msg);
-		System.err.println("Parameters: --p1-file part1File.htmlf"
-				+ " --contents-template-file contentTemplateFile.htmlf" + " --p2-file part2File.htmlf"
-				+ " --toc-template-file tocTemplateFile.htmlf" + " --p3-file part3file.htmlf"
-				+ " --input file.textile [--input file.textile]…" + " --output file.html");
+		System.err
+				.println("Parameters: --p1-file part1File.htmlf" + " --contents-template-file contentTemplateFile.htmlf"
+						+ " --p2-file part2File.htmlf" + " --toc-template-file tocTemplateFile.htmlf"
+						+ " --p3-file part3file.htmlf" + " --input file.textile [--input file.textile]…"
+						+ " --output file.html" + " [--property name=value]…");
 		System.exit(1);
 		System.exit(1);
 	}
 	}
 
 

+ 46 - 0
plugins/org.yakindu.sct.doc.user/src/test/resources/testdata.textile

@@ -0,0 +1,46 @@
+h1(#h1_1). h1_1
+
+h2(#h2_11). h2_11
+
+h2(#h2_12). h2_12
+
+h2(#h2_13). h2_13
+
+
+h1(#h1_2). h1_2
+
+h2(#h2_21). h2_21
+
+h2(#h2_22). h2_22
+
+h2(#h2_23). h2_23
+
+h2(#fragment). h2_fragment
+
+
+h1(#h1_3). h1_3
+
+h2(#h2_31). h2_31
+
+h2(#h2_32). h2_32
+
+h2(#h2_33). h2_33
+
+h2(#frag/ment). h2_frag/ment
+
+
+Links:
+* "../":../
+* "../#":../#
+* "../h1_2#fragment":../#fragment
+* "../h1_3#fragment":../#frag/ment
+* "../":../dirname
+* "../#":../dirname#
+* "../h1_2#fragment":../#fragment
+* "../h1_3#frag/ment":../dirname#frag/ment
+* "../dirname/":../dirname/filename
+* "../dirname/h1_2#":../dirname/filename#
+* "../dirname/h1_2#fragment":../dirname/filename#fragment
+* "../dirname/h1_3#frag/ment":../dirname/filename#frag/ment
+
+* "link":../dirname/filename#h1_3

+ 1 - 1
plugins/org.yakindu.sct.doc.user/src/tutorials/tutorials.textile

@@ -15,7 +15,7 @@ In the simulation screenshot above, the light switch is currently in the _on_ st
 
 
 h2(#tutorial_importing-light-switch-example). Importing light switch example
 h2(#tutorial_importing-light-switch-example). Importing light switch example
 
 
-Now try this for yourself. We are assuming that you have already installed and started YAKINDU Statechart Tools. If you don't, please see the "Installation Guide":../installation/installation.html for details.
+Now try this for yourself. We are assuming that you have already installed and started YAKINDU Statechart Tools. If you don't, please see the "Installation Guide":../installation/installation.html#inst_installing_yakindu_statechart_tools for details.
 
 
 # If the "Welcome" page is still open, close it. <p>!(standard-image small)images/tuto_5min_010_close_welcome.png(Closing the "Welcome" page)!</p>
 # If the "Welcome" page is still open, close it. <p>!(standard-image small)images/tuto_5min_010_close_welcome.png(Closing the "Welcome" page)!</p>
 # In the main menu, select _File → New → Example…_.
 # In the main menu, select _File → New → Example…_.

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 3 - 3
plugins/org.yakindu.sct.doc.user/src/user-guide/editing_statecharts.textile


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 3 - 3
plugins/org.yakindu.sct.doc.user/src/user-guide/generating_code.textile


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 3 - 3
plugins/org.yakindu.sct.doc.user/src/user-guide/generating_code_headless.textile


+ 1 - 1
plugins/org.yakindu.sct.doc.user/src/user-guide/glossary.textile

@@ -174,7 +174,7 @@ h2(#glossary_state_machine_code). State machine code
 
 
 h2(#glossary_transition). Transition
 h2(#glossary_transition). Transition
 
 
-A *transition* is one of the fundamental concepts of "statecharts":#glossary_statechart. It leads from a source "state":#glossary_state to a target state. Details can be found in section "&quot;Transition&quot;":../user-guide/statechart_language#sclang_transitions.
+A *transition* is one of the fundamental concepts of "statecharts":#glossary_statechart. It leads from a source "state":#glossary_state to a target state. Details can be found in section "&quot;Transition&quot;":../user-guide/statechart_language.html#sclang_transitions.
 
 
 
 
 h2(#glossary_type_system). Type system
 h2(#glossary_type_system). Type system

+ 1 - 1
plugins/org.yakindu.sct.doc.user/src/user-guide/overview.textile

@@ -22,7 +22,7 @@ p=. Features of YAKINDU Statechart Tools
 
 
 The Professional Edition of YAKINDU Statechart Tools makes additional features available:
 The Professional Edition of YAKINDU Statechart Tools makes additional features available:
 
 
-* "*Deep integration with the C programming language*":../user-guide/c-domain to directly access C variables, types etc.
+* "*Deep integration with the C programming language*":../user-guide/c-domain.html#cdom_deep_c_integration to directly access C variables, types etc.
 * "*Advanced simulation and debugging*":../user-guide/simulating_statecharts.html#advsim_debugging_with_breakpoints_and_snapshots with breakpoints and snapshots
 * "*Advanced simulation and debugging*":../user-guide/simulating_statecharts.html#advsim_debugging_with_breakpoints_and_snapshots with breakpoints and snapshots
 
 
 
 

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 11 - 11
plugins/org.yakindu.sct.doc.user/src/user-guide/sctunit.textile


+ 1 - 1
plugins/org.yakindu.sct.doc.user/src/user-guide/simulating_statecharts.textile

@@ -5,7 +5,7 @@ Simulating a statechart model means to execute it, raise events manually, have t
 
 
 You can run multiple state machines in parallel and even multiple instances of the same state machine.
 You can run multiple state machines in parallel and even multiple instances of the same state machine.
 
 
-An introduction to simulation is given in section "&quot;Simulating the light switch model&quot;":../tutorials/tutorials#tutorial_simulating_the_light_switch_model.
+An introduction to simulation is given in section "&quot;Simulating the light switch model&quot;":../tutorials/tutorials.html#tutorial_simulating_the_light_switch_model.
 
 
 
 
 
 

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 3 - 3
plugins/org.yakindu.sct.doc.user/src/user-guide/statechart_language.textile


+ 24 - 35
plugins/org.yakindu.sct.doc.user/src/website/YSCT-documentation-template.htmlf

@@ -25,6 +25,7 @@
             }
             }
         </style>
         </style>
 
 
+        {#
         <script type="text/javascript" src="{{ get_public_template_url("custom/page/itemis/bootstrap-anchor.js") }}"></script>
         <script type="text/javascript" src="{{ get_public_template_url("custom/page/itemis/bootstrap-anchor.js") }}"></script>
         <script type="text/javascript">
         <script type="text/javascript">
         jQuery(document).ready(function() {
         jQuery(document).ready(function() {
@@ -37,6 +38,7 @@
             jQuery('body').css('position', 'relative').scrollspy({target: "#sidebar-navigation", offset: 150});
             jQuery('body').css('position', 'relative').scrollspy({target: "#sidebar-navigation", offset: 150});
         });
         });
         </script>
         </script>
+        #}
         
         
     {% elif dynamic_page_hubdb_table_id %}
     {% elif dynamic_page_hubdb_table_id %}
         <link href="{{ get_public_template_url("Custom/page/itemis/it-yakindu-docs-overview.css") }}" rel="stylesheet" type="text/css">
         <link href="{{ get_public_template_url("Custom/page/itemis/it-yakindu-docs-overview.css") }}" rel="stylesheet" type="text/css">
@@ -80,11 +82,6 @@
     </div><!--end header -->
     </div><!--end header -->
 </div><!--end header wrapper -->
 </div><!--end header wrapper -->
 
 
-
-
-
-
-
 <div class="body-container-wrapper">
 <div class="body-container-wrapper">
     <div class="body-container container-fluid">
     <div class="body-container container-fluid">
 
 
@@ -95,8 +92,6 @@
 
 
 {% if dynamic_page_hubdb_row %}
 {% if dynamic_page_hubdb_row %}
 
 
-
-
     <div class="row-fluid-wrapper row-depth-1 row-number-2 ">
     <div class="row-fluid-wrapper row-depth-1 row-number-2 ">
     <div class="row-fluid ">
     <div class="row-fluid ">
 
 
@@ -104,7 +99,7 @@
     <div class="cell-wrapper layout-widget-wrapper">
     <div class="cell-wrapper layout-widget-wrapper">
     {% widget_block raw_html "module_150227904680399" wrapping_html='', per_widget_wrapper_html='', overrideable=true, label='Custom HTML' %}
     {% widget_block raw_html "module_150227904680399" wrapping_html='', per_widget_wrapper_html='', overrideable=true, label='Custom HTML' %}
     {% widget_attribute "value" %}<div id="sidebar-navigation">
     {% widget_attribute "value" %}<div id="sidebar-navigation">
-        <h2><span>Statechart User Guide</span> THEMES</h2>
+        <h2>${navigation.title}</h2>
         <nav>
         <nav>
             <ol class="nav">
             <ol class="nav">
 
 
@@ -209,10 +204,11 @@
     <div class="primary">
     <div class="primary">
         <div class="row-fluid-wrapper">
         <div class="row-fluid-wrapper">
             <div class="row-fluid">
             <div class="row-fluid">
+
                 <div class="themes-container search span4">
                 <div class="themes-container search span4">
-                    <h2>What's your problem?</h2>
-                    <p>Can't find what you're looking for?</p>
-                    <div id="navigation-search-form" data-cx="015950920325887884916:2e61oxlndni">
+                    <h2>Can't find what you're looking for?</h2>
+                    <p>Browse the whole documentation.</p>
+                    <div id="navigation-search-form" data-cx="015950920325887884916:nwstrxx2ycm">
                         <nav class="it-header__menu cf it-header__de hs-cta-wrapper">
                         <nav class="it-header__menu cf it-header__de hs-cta-wrapper">
                             <input data-id="it-header__search-input" placeholder="Type here." type="search"> <br /><br />
                             <input data-id="it-header__search-input" placeholder="Type here." type="search"> <br /><br />
                             <a href="#" class="header-tools__search-icon it_cta_button_next white">search</a>
                             <a href="#" class="header-tools__search-icon it_cta_button_next white">search</a>
@@ -220,31 +216,24 @@
                     </div>
                     </div>
                 </div>
                 </div>
 
 
-        {% for row in hubdb_table_rows(dynamic_page_hubdb_table_id, "&chapter__gte=1&orderBy=chapter") %}
-            
-            {% if loop.index != 1 && loop.index % 3 == 0 %}
-                    </div>
-                </div>
-                <div class="row-fluid-wrapper">
-                    <div class="row-fluid">
-            {% endif %}
-            
-                    <div class="themes-container span4{% if row.pro_feature %} pro-feature{% endif %}">
-                        <a href="{{ request.path }}/{{ row.hs_path }}"><h2>{{row.hs_name}}</h2></a>
-                        <p>{{row.description}}</p>
-                        
-                        <div class="hs-cta-wrapper"><a href="{{ request.path }}/{{ row.hs_path }}" class="it_cta_button_next white">More</a></div>
-                    </div>
-            
-            
-            {% if loop.last && loop.index % 3 == 2 %}
+
+            {% for row in hubdb_table_rows(dynamic_page_hubdb_table_id, "&chapter__gte=1&orderBy=chapter") %}
+                
+                {% if loop.index != 1 && loop.index % 3 == 0 %}
+                        </div>
                     </div>
                     </div>
-                </div>
-                <div class="row-fluid-wrapper">
-                    <div class="row-fluid">
-            {% endif %}
-            
-        {% endfor %}
+                    <div class="row-fluid-wrapper">
+                        <div class="row-fluid">
+                {% endif %}
+                
+                        <div class="themes-container span4{% if row.pro_feature %} pro-feature{% endif %}">
+                            <a href="{{ request.path }}/{{ row.hs_path }}"><h2>{{row.hs_name}}</h2></a>
+                            <p>{{row.description}}</p>
+                            
+                            <div class="hs-cta-wrapper"><a href="{{ request.path }}/{{ row.hs_path }}" class="it_cta_button_next white">More</a></div>
+                        </div>
+                
+            {% endfor %}
         
         
             </div>
             </div>
         </div>
         </div>

+ 3 - 1
plugins/org.yakindu.sct.doc.user/src/website/p1.htmlf

@@ -24,6 +24,7 @@
                 counter-increment: h1 +{{dynamic_page_hubdb_row.chapter - 1}};
                 counter-increment: h1 +{{dynamic_page_hubdb_row.chapter - 1}};
             }
             }
         </style>
         </style>
+        {#
         <script type="text/javascript" src="{{ get_public_template_url("custom/page/itemis/bootstrap-anchor.js") }}"></script>
         <script type="text/javascript" src="{{ get_public_template_url("custom/page/itemis/bootstrap-anchor.js") }}"></script>
         <script type="text/javascript">
         <script type="text/javascript">
         jQuery(document).ready(function() {
         jQuery(document).ready(function() {
@@ -36,6 +37,7 @@
             jQuery('body').css('position', 'relative').scrollspy({target: "#sidebar-navigation", offset: 150});
             jQuery('body').css('position', 'relative').scrollspy({target: "#sidebar-navigation", offset: 150});
         });
         });
         </script>
         </script>
+        #}
         
         
     {% elif dynamic_page_hubdb_table_id %}
     {% elif dynamic_page_hubdb_table_id %}
         <link href="{{ get_public_template_url("Custom/page/itemis/it-yakindu-docs-overview.css") }}" rel="stylesheet" type="text/css">
         <link href="{{ get_public_template_url("Custom/page/itemis/it-yakindu-docs-overview.css") }}" rel="stylesheet" type="text/css">
@@ -102,7 +104,7 @@
     <div class="cell-wrapper layout-widget-wrapper">
     <div class="cell-wrapper layout-widget-wrapper">
     {% widget_block raw_html "module_150227904680399" wrapping_html='', per_widget_wrapper_html='', overrideable=true, label='Custom HTML' %}
     {% widget_block raw_html "module_150227904680399" wrapping_html='', per_widget_wrapper_html='', overrideable=true, label='Custom HTML' %}
     {% widget_attribute "value" %}<div id="sidebar-navigation">
     {% widget_attribute "value" %}<div id="sidebar-navigation">
-        <h2><span>Statechart User Guide</span> THEMES</h2>
+        <h2>${navigation.title}</h2>
         <nav>
         <nav>
             <ol class="nav">
             <ol class="nav">
 
 

+ 19 - 27
plugins/org.yakindu.sct.doc.user/src/website/p3.htmlf

@@ -24,9 +24,9 @@
         <div class="row-fluid-wrapper">
         <div class="row-fluid-wrapper">
             <div class="row-fluid">
             <div class="row-fluid">
                 <div class="themes-container search span4">
                 <div class="themes-container search span4">
-                    <h2>What's your problem?</h2>
-                    <p>Can't find what you're looking for?</p>
-                    <div id="navigation-search-form" data-cx="015950920325887884916:2e61oxlndni">
+                    <h2>Can't find what you're looking for?</h2>
+                    <p>Browse the whole documentation.</p>
+                    <div id="navigation-search-form" data-cx="015950920325887884916:nwstrxx2ycm">
                         <nav class="it-header__menu cf it-header__de hs-cta-wrapper">
                         <nav class="it-header__menu cf it-header__de hs-cta-wrapper">
                             <input data-id="it-header__search-input" placeholder="Type here." type="search"> <br /><br />
                             <input data-id="it-header__search-input" placeholder="Type here." type="search"> <br /><br />
                             <a href="#" class="header-tools__search-icon it_cta_button_next white">search</a>
                             <a href="#" class="header-tools__search-icon it_cta_button_next white">search</a>
@@ -34,31 +34,23 @@
                     </div>
                     </div>
                 </div>
                 </div>
 
 
-        {% for row in hubdb_table_rows(dynamic_page_hubdb_table_id, "&chapter__gte=1&orderBy=chapter") %}
-            
-            {% if loop.index != 1 && loop.index % 3 == 0 %}
+            {% for row in hubdb_table_rows(dynamic_page_hubdb_table_id, "&chapter__gte=1&orderBy=chapter") %}
+                
+                {% if loop.index != 1 && loop.index % 3 == 0 %}
+                        </div>
                     </div>
                     </div>
-                </div>
-                <div class="row-fluid-wrapper">
-                    <div class="row-fluid">
-            {% endif %}
-            
-                    <div class="themes-container span4{% if row.pro_feature %} pro-feature{% endif %}">
-                        <a href="{{ request.path }}/{{ row.hs_path }}"><h2>{{row.hs_name}}</h2></a>
-                        <p>{{row.description}}</p>
-                        
-                        <div class="hs-cta-wrapper"><a href="{{ request.path }}/{{ row.hs_path }}" class="it_cta_button_next white">More</a></div>
-                    </div>
-            
-            
-            {% if loop.last && loop.index % 3 == 2 %}
-                    </div>
-                </div>
-                <div class="row-fluid-wrapper">
-                    <div class="row-fluid">
-            {% endif %}
-            
-        {% endfor %}
+                    <div class="row-fluid-wrapper">
+                        <div class="row-fluid">
+                {% endif %}
+                
+                        <div class="themes-container span4{% if row.pro_feature %} pro-feature{% endif %}">
+                            <a href="{{ request.path }}/{{ row.hs_path }}"><h2>{{row.hs_name}}</h2></a>
+                            <p>{{row.description}}</p>
+                            
+                            <div class="hs-cta-wrapper"><a href="{{ request.path }}/{{ row.hs_path }}" class="it_cta_button_next white">More</a></div>
+                        </div>
+                
+            {% endfor %}
         
         
             </div>
             </div>
         </div>
         </div>